Technote 1041

Inside Macintosh: Files Errata


DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇ≈ÇÕÅAÅwInside Macintosh: FilesÅxÇÃåÎêAÇí˘ê≥ǵÅAì‡óeÇÃïsîıÇï‚ë´ÇµÇ‹Ç∑ÅB

ñ⁄éü

ëÊ 1 èÕ - File Management ÇÃäTóv

ëÊ 2 èÕ - File Manager

ëÊ 3 èÕ - ïWèÄÉtÉ@ÉCÉãÉpÉbÉPÅ[ÉW

ëÊ 4 èÕ - Alias Manager

ëÊ 5 èÕ - Disk Initialization Manager

éQçlï∂å£

É_ÉEÉìÉçÅ[Éh



ëÊ 1 èÕ - File Management ÇÃäTóv

FSpExchangeFiles ÇΔ PBExchangeFiles - âΩÇ™åä∑Ç≥ÇÍÇÈÇ©

1-53 ÉyÅ[ÉWÅAFSpExchangeFiles

DZÇÃÉgÉsÉbÉNÇÃè⁄ç◊DžǬǢǃÇÕÅAëÊ 2 èÕÇÃê≥åÎï\ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

GetVInfo Ç…ä÷Ç∑ÇÈí«â¡åüì¢éñçÄ

1-56 ÉyÅ[ÉWÅAGetVInfo

DZÇÃÉgÉsÉbÉNÇÃè⁄ç◊DžǬǢǃÇÕÅAëÊ 2 èÕÇÃê≥åÎï\ÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

êÊì™ÉyÅ[ÉWÇ…ñflÇÈ


ëÊ 2 èÕ - File Manager

ÉpÉXñºÇÃãKë•Ç™äÆëSÇ…ê‡ñæÇ≥ÇÍǃǢǻǢ

2-27 ÉyÅ[ÉWÇ©ÇÁ 2-28 ÉyÅ[ÉWÅAñºëOÇΔÉpÉXñº

éüÇÃÇÊǧǻ Macintosh ÇÃÉpÉXñºÇÃì¡ê´Ç…íçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅB

  • ÉtÉãÉpÉXñºÇ™ÉRÉçÉìÇ≈énÇ‹ÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÇ™ÅAÉtÉãÉpÉXñºÇ…ÇÕè≠Ç»Ç≠ÇΔLJ 1 ǬÇÃÉRÉçÉìÇ™ä‹Ç‹ÇÍǃǢÇÈïKóvǙdžÇËÇ‹Ç∑ÅB
  • íPàÍÇÃÉtÉ@ÉCÉãÇ‹ÇΩÇÕÉfÉBÉåÉNÉgÉäÇÃñºëOÇ≈džÇÈèÍçáÇèúÇ´ÅAïîï™ÉpÉXñºÇÕèÌÇ…ÉRÉçÉìÉZÉpÉåÅ[É^Ç≈énÇ‹ÇËÇ‹Ç∑ÅB
  • ÉtÉãÉpÉXñºÇ‹ÇΩÇÕïîï™ÉpÉXñºÇÃññîˆÇ…džÇÈÉRÉçÉìÉZÉpÉåÅ[É^ÇÕÅAǪÇÍÇ™É{ÉäÉÖÅ[ÉÄÇ÷ÇÃÉtÉãÉpÉXñºÇ≈džÇÈèÍçáÇèúÇ´ÅAñ≥éãÇ≥ÇÍÇ‹Ç∑ÅB
  • É{ÉäÉÖÅ[ÉÄÇ÷ÇÃÉtÉãÉpÉXñºÇ≈ÇÕñºëOÇÃññîˆÇ…ÉRÉçÉìÉZÉpÉåÅ[É^Ç™ïKóvÇ≈Ç∑ÅB
  • òAë±Ç∑ÇÈÉRÉçÉìÉZÉpÉåÅ[É^ÇÕÅAdžÇÈÉfÉBÉåÉNÉgÉäÇ©ÇÁǪÇÃêeÉfÉBÉåÉNÉgÉäÇ…ÉåÉxÉãÇè„Ç∞ÇÈÇΩÇflÇ…égópÇ≈Ç´Ç‹Ç∑ÅBòAë±Ç∑ÇÈ 2 ǬÇÃÉRÉçÉìÉZÉpÉåÅ[É^ÇÕÉåÉxÉãÇ 1 Ǭè„Ç∞ÅAòAë±Ç∑ÇÈ 3 ǬÇÃÉRÉçÉìÉZÉpÉåÅ[É^ÇÕÉåÉxÉãÇ 2 Ǭè„Ç∞Ç‹Ç∑ÅBÉåÉxÉãÇÃè„è∏ÇÕÉtÉ@ÉCÉãÇ≈ÇÕÇ»Ç≠ÅAÉfÉBÉåÉNÉgÉäÇ©ÇÁÇÃÇ›énÇ‹ÇËÇ‹Ç∑ÅB

à»è„ÇÇ‹ÇΔÇflÇÈÇΔÅAÉpÉXñºÇÃêÊì™ï∂éöÇ™ÉRÉçÉìÇ≈džÇÈÇ©ÅAÉpÉXñºÇ…ÉRÉçÉìÇ™ä‹Ç‹ÇÍǃǢǻǢèÍçáÅAǪÇÍÇÕïKÇ∏ïîï™ÉpÉXñºÇ≈Ç∑ÅBǪǧÇ≈ǻǢèÍçáÇÕÉtÉãÉpÉXñºÇ≈Ç∑ÅB

ï\ 2-10 Ç…ãLç⁄Ç≥ÇÍǃǢǻǢçsǙdžÇÈ

2-35 ÉyÅ[ÉWÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄédólÉåÉRÅ[ÉhÇÃçÏê¨

ï\ 2-10 Ç…éüÇÃçsÇí«â¡ÇµÇƒÇ≠ÇæÇ≥Ç¢ÅB

çÏãΔÉfÉBÉåÉNÉgÉäéQèΔî‘çÜ ÉfÉBÉåÉNÉgÉä ID ãÛîíï∂éöóÒÇ‹ÇΩÇÕ NIL É^Å[ÉQÉbÉgÉIÉuÉWÉFÉNÉgÇÕÅAdirID ÇÃÉfÉBÉåÉNÉgÉä ID Ç…ÇÊǡǃéwíËÇ≥ÇÍÇÈÉfÉBÉåÉNÉgÉäÇ≈Ç∑ÅB

ãNìÆéûÇÃÉfÉtÉHÉãÉgÉfÉBÉåÉNÉgÉäÇÃê‡ñæÇ…ïsîıǙdžÇÈ

2-36 ÉyÅ[ÉWÅAÉfÉtÉHÉãÉgÇÃÉ{ÉäÉÖÅ[ÉÄÇΔÉfÉBÉåÉNÉgÉäÇÃéÊÇËàµÇ¢

ëÊ 1 íióéÇÃç≈å„ÇÃï∂ÇéüÇÃï∂Ç…íuÇ´ä∑ǶǃÇ≠ÇæÇ≥Ç¢ÅB

ÅuÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ãNìÆÇ∑ÇÈÇΔÇ´ÅAǪÇÃÉfÉtÉHÉãÉgÉfÉBÉåÉNÉgÉäÇÕÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™äiî[Ç≥ÇÍǃǢÇÈÉfÉBÉåÉNÉgÉäÇ…ê›íËÇ≥ÇÍÇ‹Ç∑ÅBǪÇÃå„ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™îCà”ÇÃÉfÉBÉåÉNÉgÉäÇǪÇÃÉfÉtÉHÉãÉgÉfÉBÉåÉNÉgÉäÇΔǵǃéwíËÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÅv

É}ÉXÉ^Å[ÉfÉBÉåÉNÉgÉäÉuÉçÉbÉNÇà drXTFlSize Ç®ÇÊÇ— drCTFlSize ÉtÉBÅ[ÉãÉhÇÃê‡ñæÇ…ïsîıǙdžÇÈ

2-62 ÉyÅ[ÉWÅAÉ}ÉXÉ^Å[ÉfÉBÉåÉNÉgÉäÉuÉçÉbÉN

ÉtÉBÅ[ÉãÉhÇÃãLèqÇéüÇÃÇÊǧDžïœçXǵǃÇ≠ÇæÇ≥Ç¢ÅB

drXTFlSizeÉGÉNÉXÉeÉìÉgÉIÅ[ÉoÅ[ÉtÉçÅ[ÉtÉ@ÉCÉãÇÃÉTÉCÉY (ÉoÉCÉgíPà )ÅB
drCTFlSizeÉJÉ^ÉçÉOÉtÉ@ÉCÉãÇÃÉTÉCÉY (ÉoÉCÉgíPà )ÅB

É}ÉbÉvÉmÅ[ÉhÇÃÉ}ÉbÉvÉåÉRÅ[ÉhÇÕ 492 ÉoÉCÉg (494 ÉoÉCÉgÇ≈ÇÕÇ»Ç≠) ÇêËóLÇ∑ÇÈ

2-69 ÉyÅ[ÉWÅAÉ}ÉbÉvÉmÅ[Éh

ÅuÉ}ÉbÉvÉmÅ[ÉhÅvÉZÉNÉVÉáÉìÇÃëÊ 2 Ç®ÇÊÇ—ëÊ 3 íióéÇéüÇÃíióéÇ…íuÇ´ä∑ǶǃÇ≠ÇæÇ≥Ç¢ÅB

ÅuÉ}ÉbÉvÉmÅ[ÉhÇÕ 1 ǬÇÃÉmÅ[ÉhãLèqéqÇΔ1ǬÇÃÉ}ÉbÉvÉåÉRÅ[ÉhÇ©ÇÁç\ê¨Ç≥ÇÍÇ‹Ç∑ÅBDZÇÃÉ}ÉbÉvÉåÉRÅ[ÉhÇÕÅAÉwÉbÉ_Å[ÉmÅ[ÉhÇ…ä‹Ç‹ÇÍǃǢÇÈÉ}ÉbÉvÉåÉRÅ[ÉhÇÃë±Ç´Ç≈džÇËÅA492 ÉoÉCÉgÇêËóLǵNjÇ∑ (ÉmÅ[ÉhëSëÃÇà 512 ÉoÉCÉgÇ©ÇÁÉmÅ[ÉhãLèqéqÇà 14 ÉoÉCÉgÇΔÉmÅ[ÉhÇÃññîˆÇ…džÇÈ 2 ǬÇÃÉåÉRÅ[ÉhÉIÉtÉZÉbÉgǪÇÍǺÇÍÇ…ëŒÇ∑ÇÈ 2 ÉoÉCÉgÇç∑ǵà¯Ç´ÅAǪÇÃåãâ ÇÉçÉìÉOÉèÅ[ÉhÇÃî{êîÇ…êÿÇËâ∫Ç∞ÇΩíl)ÅB(íçà”: HFS ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇà B ÉcÉäÅ[É}ÉlÅ[ÉWÉÉÇ™àÍìxÇ…ì«Ç›çûÇfiÉrÉbÉgÉ}ÉbÉvèÓïÒÇÕÉçÉìÉOÉèÅ[ÉhÇ…ëäìñǵNjÇ∑ÅB) ǵÇΩǙǡǃÅA1 ǬÇÃÉ}ÉbÉvÉmÅ[ÉhÇÕ 3936 å¬ÇÃÉmÅ[ÉhÇ…ëŒâûÇ∑ÇÈÉ}ÉbÉsÉìÉOèÓïÒÇä‹ÇfiDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

B ÉcÉäÅ[Ç… 5984 (ǬNjÇËÅA2048 + 3936ÅAñÒ 25,000 ÉtÉ@ÉCÉãÇÃèÓïÒÇè\ï™Ç…äiî[Ç≈Ç´ÇÈ) Çí¥Ç¶ÇÈÉmÅ[ÉhÇ™ä‹Ç‹ÇÍǃǢÇÈèÍçáÅAFile Manager ÇÕëÊ 2 ÇÃÉ}ÉbÉvÉmÅ[ÉhÇégópǵNjÇ∑ÅBDZÇÃÉ}ÉbÉvÉmÅ[ÉhÇÃÉmÅ[Éhî‘çÜÇÕÅAêÊì™ÇÃÉ}ÉbÉvÉmÅ[ÉhÇÃÉmÅ[ÉhãLèqéqÇ…ä‹Ç‹ÇÍÇÈ ndFLink ÉtÉBÅ[ÉãÉhÇ…äiî[Ç≥ÇÍÇ‹Ç∑ÅBÇ≥ÇÁDžǪÇÍà»è„ÇÃÉ}ÉbÉvÉmÅ[ÉhÇ™ïKóvÇ»èÍçáÇÕÅAìØólÇÃï˚ñ@Ç≈ǪÇÍǺÇÍÇÃí«â¡É}ÉbÉvÉmÅ[ÉhÇ™ëOÇÃÉ}ÉbÉvÉmÅ[ÉhÇ…ÉäÉìÉNÇ≥ÇÍÇ‹Ç∑ÅBÅv

vcbAtrb ÇÃÉ{ÉäÉÖÅ[ÉÄÉLÉÉÉbÉVÉÖÉRÉìÉgÉçÅ[ÉãÉrÉbÉg

2-79 ÉyÅ[ÉWÅAÉ{ÉäÉÖÅ[ÉÄÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉN

System 7.5 Ç‹ÇΩÇÕǪÇÍà»ç~Çà vcbAtrb Ç…ÇÕéüÇÃÉrÉbÉgíËã`Çí«â¡ÇµÇƒÇ≠ÇæÇ≥Ç¢ÅB

ÉrÉbÉgà”ñ°
10É{ÉäÉÖÅ[ÉÄÇÃÉuÉçÉbÉNÇ™ÉLÉÉÉbÉVÉÖÇ≥ÇÍǻǢèÍçáÇ…ÉZÉbÉgǵNjÇ∑ (System 7.5 Ç‹ÇΩÇÕǪÇÍà»ç~ÇÃÇ›)ÅBDZÇÃÉrÉbÉgÇ…ÇÊÇËÅARAM ÉfÉBÉXÉNÉ{ÉäÉÖÅ[ÉÄÇ…ÉAÉNÉZÉXǵǃÅAFile Manager ÉLÉÉÉbÉVÉÖÇÉoÉCÉpÉXÇ∑ÇÈDZÇΔÇ™â¬î\Ç…Ç»ÇËÇ‹Ç∑ÅBDZÇÍÇÕÅAFile Manager Ç…ÇÊÇÈÉ{ÉäÉÖÅ[ÉÄÇ÷ÇÃÇ∑Ç◊ǃÇÃì«Ç›èëÇ´Ç…ëŒÇµÇƒ noCache ÉrÉbÉg (ioPosMode ÇÃÉrÉbÉg 5) ÇÉZÉbÉgÇ∑ÇÈÇÃÇΔìØÇ∂å¯â Ç™Ç†ÇËÇ‹Ç∑ÅBîÒÉuÉçÉbÉNÉAÉâÉCÉìÉäÉNÉGÉXÉgÇ™ÉLÉÉÉbÉVÉÖÇâÓǵǃÉAÉNÉZÉXÇ≥ÇÍÇÈDZÇΔLJdžÇËÇ‹Ç∑ÅB

HFSÉ{ÉäÉÖÅ[ÉÄÇ™ System 7.5 Ç‹ÇΩÇÕǪÇÍà»ç~ÇégǡǃÉ}ÉEÉìÉgÇ≥ÇÍÇÈÇΔÇ´ÅAFile Manager ÇÕ "Return Drive Info" _Control åƒÇ—èoǵ (csCode=23) ÇégǡǃÉfÉBÉXÉNÉhÉâÉCÉoÇåƒÇ—èoǵNjÇ∑ÅBÇ≥ÇÁÇ…ÅAFile Manager ÇÕ csParam ÇÃâ∫à ÉoÉCÉg (ÉrÉbÉg 0-7) Çå©ÇƒÅAÉhÉâÉCÉuÉ^ÉCÉvÇ™ ramDiskType (16, $10) Ç‹ÇΩÇÕ romDiskType (17, $11) Ç≈džÇÈǩǫǧǩÉ`ÉFÉbÉNǵNjÇ∑ÅBLJǵǪǧÇ≈džÇÍÇŒÅAVCB Çà vcbAtrb ÉtÉBÅ[ÉãÉhÇà vcbAtDontCache ÉrÉbÉgÇÉZÉbÉgǵNjÇ∑ÅBDZÇÍÇ…ÇÊÇËÅARAM Ç‹ÇΩÇÕ ROM ÉfÉBÉXÉNÉ{ÉäÉÖÅ[ÉÄÇ…ÉAÉNÉZÉXǵǃÅAFile Manager ÉLÉÉÉbÉVÉÖÇÉoÉCÉpÉXÇ∑ÇÈDZÇΔÇ™â¬î\Ç…Ç»ÇËÇ‹Ç∑ÅBDZÇÍÇÕÅAFile Manager Ç…ÇÊÇÈÉ{ÉäÉÖÅ[ÉÄÇ÷ÇÃÇ∑Ç◊ǃÇÃì«Ç›èëÇ´Ç…ëŒÇµÇƒ noCache ÉrÉbÉg (ioPosMode ÇÃÉrÉbÉg 5) ÇÉZÉbÉgÇ∑ÇÈÇÃÇΔìØÇ∂å¯â Ç™Ç†ÇËÇ‹Ç∑ÅBîÒÉuÉçÉbÉNÉAÉâÉCÉìÉäÉNÉGÉXÉgÇ™ÉLÉÉÉbÉVÉÖÇâÓǵǃÉAÉNÉZÉXÇ≥ÇÍÇÈDZÇΔLJdžÇËÇ‹Ç∑ÅB

ÉhÉâÉCÉoÇ…ä÷Ç∑ÇÈíçà”: ÉhÉâÉCÉoÇ™ vcbAtrb Çà vcbAtDontCache ÉrÉbÉgÇíºê⁄ìIÇ…ïœçXÇ∑ÇÈÇÃÇÕîÇØÇƒÇ≠ÇæÇ≥Ç¢ÅBRAM Ç‹ÇΩÇÕ ROM ÉfÉBÉXÉNÇ…ëŒâûÇ∑ÇÈÉhÉâÉCÉoÇ≈ÇÕÅA_Control csCode 23 ÇÉTÉ|Å[ÉgǵÅAcsParam ÇÃâ∫à ÉoÉCÉgÇ≈ ramDiskType (16, $10) Ç‹ÇΩÇÕ romDiskType (17, $11) ÇéÊìæÇ∑ÇÈDZÇΔÇ≈ÅAǪÇÍÇ™ RAM Ç‹ÇΩÇÕ ROM ÉfÉBÉXÉNÇ≈džÇÈÇΔîªífÇ∑ÇÈÇÊǧDžǵNjÇ∑ÅBëºÇÃÉfÉBÉXÉNÉhÉâÉCÉoÇ™ vcbAtDontCache ÉrÉbÉgÇÉZÉbÉgǵǃÇÕÇ¢ÇØÇ‹ÇπÇÒÅBǪǧÇ≈ǻǢÇΔÅAç°å„ File Manager ÉLÉÉÉbÉVÉÖÇ…â¡Ç¶ÇÁÇÍÇÈDZÇΔDžǻǡǃǢÇÈâ¸ëPǙǪÇÍÇÁÇÃÉhÉâÉCÉuÇ≈ÇÕñ≥å¯Ç…ǻǡǃǵNjǢNjÇ∑ÅB

É{ÉäÉÖÅ[ÉÄÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇà vcbXTAlBks Ç®ÇÊÇ— vcbCTAlBks ÉtÉBÅ[ÉãÉhÇÃê‡ñæÇ…ïsîıǙdžÇÈ

2-81 ÉyÅ[ÉWÅAÉ{ÉäÉÖÅ[ÉÄÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉN

ÉtÉBÅ[ÉãÉhÇÃê‡ñæÇéüÇÃÇÊǧDžïœçXǵǃÇ≠ÇæÇ≥Ç¢ÅB

vcbXTAlBksÉGÉNÉXÉeÉìÉgÉIÅ[ÉoÅ[ÉtÉçÅ[ÉtÉ@ÉCÉãÇÃÉTÉCÉY (ÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNì‡ÇÃ)ÅB
vcbCTAlBksÉJÉ^ÉçÉOÉtÉ@ÉCÉãÇÃÉTÉCÉY (ÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNì‡ÇÃ)ÅB

3.5 ÉCÉìÉ`ÉtÉçÉbÉsÅ[ÉfÉBÉXÉNè„Ç≈ÇÕégópÇ≥ÇÍǻǢ dQDrvSiz ÉtÉBÅ[ÉãÉh

2-85 ÉyÅ[ÉWÅAÉhÉâÉCÉuÉLÉÖÅ[

íçà”ÅF
É{ÉäÉÖÅ[ÉÄÇ™ .Sony ÉhÉâÉCÉoÇ…ÇÊǡǃèäóLÇ≥ÇÍǃǢÇÈ 3.5 ÉCÉìÉ`ÉtÉçÉbÉsÅ[ÉfÉBÉXÉNÇÃèÍçáÅACODE>dQDrvSiz Ç®ÇÊÇ— dQDrvSiz2 ÉtÉBÅ[ÉãÉhÇÕóLå¯Ç≈Ç»Ç≠Ç»ÇËÇ‹Ç∑ÅB.Sony ÉhÉâÉCÉoÇ…ÇÊǡǃèäóLÇ≥ÇÍǃǢÇÈ 3.5 ÉCÉìÉ`ÉtÉçÉbÉsÅ[ÉfÉBÉXÉNÇÃÉTÉCÉYÇéÊìæÇ∑ÇÈÇ…ÇÕÅAÇ‹Ç∏ Return Format List (csCode= 6) Status åƒÇ—èoǵÇééǵÅAReturn Format List Ç… statusErr (-18) Ç™î≠ê∂Ç∑ÇÈèÍçáÇÕÅADriveStatus ÇégǡǃÅADrvSts ÉåÉRÅ[ÉhÇà twoSideFmt ÉtÉBÅ[ÉãÉhÇÉ`ÉFÉbÉNǵǃÅAÉfÉBÉXÉNÇ™ 800 ÇÃÉuÉçÉbÉN (twoSideFmt = 0) ÇΔ 1600 (twoSideFmt = -1) ÇÃÉuÉçÉbÉNÇÃÇ«ÇøÇÁÇéùǬǩÇåàíËǵNjÇ∑ÅBReturn Format List Status åƒÇ—èoǵÇÃè⁄ç◊DžǬǢǃÇÕÅAÉeÉNÉjÉJÉãÉmÅ[ÉgÅuDV 17 - Sony Driver : What Your Sony Drives For YouÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ParamBlockRec, HParamBlockRecÅAÇ®ÇÊÇ— CInfoPBRec Çà ioFlAttrib ÉrÉbÉgÇÃñæämâª

2-90 ÉyÅ[ÉWÅAäÓñ{ìIÇ» File Manager ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÅAfileParam ÉoÉäÉAÉìÉgÇ…ëŒÇ∑ÇÈÉtÉBÅ[ÉãÉhÇÃê‡ñæ
2-96 ÉyÅ[ÉWÅAHFS ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÅAfileParam ÉoÉäÉAÉìÉgÇ…ëŒÇ∑ÇÈÉtÉBÅ[ÉãÉhÇÃê‡ñæ
2-102 ÉyÅ[ÉWÅAÉJÉ^ÉçÉOèÓïÒÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÅAóºï˚ÇÃÉoÉäÉAÉìÉgÇ…ã§í Ç»ÉtÉBÅ[ÉãÉhÇÃê‡ñæ

ÉtÉ@ÉCÉãÇÃèÍçáÅAioFlAttrib ÇÃäeÉrÉbÉgÇÕéüÇÃÇÊǧǻà”ñ°ÇéùÇøÇ‹Ç∑ÅB

ÉrÉbÉgà”ñ°
0ÉtÉ@ÉCÉãÇ™ÉçÉbÉNÇ≥ÇÍǃǢÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅBPBHSetFLock Ç‹ÇΩÇÕ PBHRstFLock ä÷êîÇégǡǃïœçXÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
1ó\ñÒÇ≥ÇÍǃǢNjÇ∑ÅB
2ÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇ™ÉIÅ[ÉvÉìǵǃǢÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅB
3ÉfÅ[É^ÉtÉHÅ[ÉNÇ™ÉIÅ[ÉvÉìǵǃǢÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅB
4ÉfÉBÉåÉNÉgÉäÇÃèÍçáÇ…ÉZÉbÉgǵNjÇ∑ (ÉtÉ@ÉCÉãÇÃèÍçáÇÕèÌÇ…ÉNÉäÉAÇ≥ÇÍǃǢNjÇ∑)ÅB
5ó\ñÒÇ≥ÇÍǃǢNjÇ∑ÅB
6AppleShare ÉTÅ[ÉoÇ™ÉtÉ@ÉCÉãÇà "ÉRÉsÅ[ÉvÉçÉeÉNÉg" ÇçsǡǃǢÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅBÉTÅ[ÉoÇ™ afpGetFileDirParms Ç…ÇÊǡǃï‘Ç≥ÇÍÇÈ CopyProtect ÉrÉbÉgÇÉZÉbÉgÇ∑ÇÈÇΔÇ´ÅAAppleShare äOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄÉRÅ[ÉhÇ…ÇÊǡǃÉZÉbÉgǵNjÇ∑ÅB
7ÉtÉ@ÉCÉã (Ç‹ÇΩÇÕÉtÉHÅ[ÉN) Ç™ÉIÅ[ÉvÉìǵǃǢÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅB

ÉfÉBÉåÉNÉgÉäÇÃèÍçáÅAioFlAttrib ÇÃäeÉrÉbÉgÇÕéüÇÃÇÊǧǻà”ñ°ÇéùÇøÇ‹Ç∑ÅB

ÉrÉbÉgà”ñ°
0ÉfÉBÉåÉNÉgÉäÇ™ÉçÉbÉNÇ≥ÇÍǃǢÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅBÉ{ÉäÉÖÅ[ÉÄÇ™ã§óLÇ≥ÇÍǃǢÇÈÇΔÇ´ÇÕÅAPBHSetFLock Ç‹ÇΩÇÕ PBHRstFLock ä÷êîÇégǡǃïœçXÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
1ó\ñÒÇ≥ÇÍǃǢNjÇ∑ÅB
2ÉfÉBÉåÉNÉgÉäÇ™ÉfÉBÉåÉNÉgÉääKëwÇÃã§óLóÃàÊì‡Ç…džÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅB
3ÉfÉBÉåÉNÉgÉäÇ™îCà”ÇÃÉÜÅ[ÉUÇ…ÇÊǡǃÉ}ÉEÉìÉgÇ≥ÇÍǃǢÇÈã§óLÉ|ÉCÉìÉgÇ≈džÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅB
4ÉfÉBÉåÉNÉgÉäÇÃèÍçáÇ…ÉZÉbÉgǵNjÇ∑ (ÉfÉBÉåÉNÉgÉäÇÃèÍçáÇÕèÌÇ…ÉZÉbÉgÇ≥ÇÍǃǢNjÇ∑)ÅB
5ÉfÉBÉåÉNÉgÉäÇ™ã§óLÉ|ÉCÉìÉgÇ≈džÇÈèÍçáÇ…ÉZÉbÉgǵNjÇ∑ÅBPBShare Ç®ÇÊÇ— PBUnshare Ç…ÇÊǡǃÉZÉbÉgÇ‹ÇΩÇÕÉNÉäÉAÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
6ó\ñÒÇ≥ÇÍǃǢNjÇ∑ÅB
7ó\ñÒÇ≥ÇÍǃǢNjÇ∑ÅB

ioACUser ÇÕÇ¢Ç≠ǬǩÇÃÉCÉìÉ^ÉtÉFÅ[ÉXÉtÉ@ÉCÉãÇÃíÜÇ≈ÇÕ filler2 DžǻǡǃǢÇÈ

2-100 Ç®ÇÊÇ— 2-103 ÉyÅ[ÉWÅAÉJÉ^ÉçÉOèÓïÒÉpÉâÉÅÅ[É^ÉuÉçÉbÉN
2-191 ÉyÅ[ÉWÅAPBGetCatInfo

íçà”ÅF
ioACUser ÉtÉBÅ[ÉãÉhÇÕ CInfoPBRec ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇÃÉIÉtÉZÉbÉg31 ($1F) DždžÇËÇ‹Ç∑ÅBFiles ÉCÉìÉ^ÉtÉFÅ[ÉXÇÃëÂïîï™ÇÃÉoÅ[ÉWÉáÉì (Files.hÅAFiles.p ǻǫ) Ç≈ÇÕÅAÉIÉtÉZÉbÉg 31 ÇÃÉtÉBÅ[ÉãÉhÇÕ filler2 Ç≈Ç∑ÅBDZÇÃñ‚ëËÇÕ Files ÉCÉìÉ^ÉtÉFÅ[ÉXÇÃç≈êVÉoÅ[ÉWÉáÉìÇ≈ÇÕâåàÇ≥ÇÍǃǢNjÇ∑ÅB

VolMountInfoHeader ÉfÅ[É^ç\ë¢ëÃÇ…ÇÕÉtÉâÉOÉèÅ[ÉhÇ™ä‹Ç‹ÇÍǃǢÇÈ

2-110 ÉyÅ[ÉWÅAÉ{ÉäÉÖÅ[ÉÄÉ}ÉEÉìÉeÉBÉìÉOèÓïÒÉåÉRÅ[Éh

VolMountInfoHeader ÉfÅ[É^ç\ë¢ëÃÇÕÉtÉâÉOÉèÅ[ÉhÇä‹ÇfiÇÊǧDžägí£Ç≥ÇÍNjǵÇΩÅBåªç›ÅADZÇÃÉfÅ[É^ç\ë¢ëÃÇÕéüÇÃÇÊǧDžíËã`Ç≥ÇÍǃǢNjÇ∑ÅB


 struct VolMountInfoHeader
 {
     short       length;  /* ÉçÉPÅ[ÉVÉáÉìÉfÅ[É^ (é©ï™é©êgÇä‹Çfi) ÇÃí∑Ç≥ */
     VolumeType  media;   /* ÉÅÉfÉBÉAÇÃÉ^ÉCÉv */
     short       flags;   /* Apple Ç™ó\ñÒǵǃǢÇÈè„à ÉoÉCÉg */
                          /* ÉtÉ@ÉCÉãÉVÉXÉeÉÄå≈óLÇÃégópÇÃÇΩÇflÇ…ó\ñÒÇ≥ÇÍǃǢÇÈâ∫à ÉoÉCÉg */
     /* â¬ïœí∑ÉfÅ[É^Ç™ë±Ç≠ */
 };

ÉtÉâÉOÉèÅ[Éhì‡Ç≈ÇÕÅAÉrÉbÉg 14 ÇΔ 15 Ç™íËã`Ç≥ÇÍǃǢNjÇ∑ÅBÉtÉâÉOÉèÅ[ÉhÇÃè„à ÉoÉCÉgÇ…ä‹Ç‹ÇÍÇÈǪÇÃëºÇ∑Ç◊ǃÇÃÉrÉbÉgÇÕÉNÉäÉAǵÇΩNjNjDžǵǃǮǴNjÇ∑ÅBÉtÉâÉOÉèÅ[ÉhÇÃâ∫à ÉoÉCÉgÇ…ä‹Ç‹ÇÍÇÈÉrÉbÉgÇÕÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…å≈óLÇ≈Ç∑ÅBÇΩÇΔǶnjÅAAppleShare äOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈ÇÕÅAÉTÅ[ÉoÇÃãNìÆÉÅÉbÉZÅ[ÉWÇ™ï\é¶Ç≥ÇÍÇÈÇ©ó}êßÇ≥ÇÍÇÈÇ©ÇîªífÇ∑ÇÈÇΩÇflÇ…ÉrÉbÉg 0 ÇégópǵNjÇ∑ÅB

ÉtÉâÉOÉèÅ[ÉhÇÃÉrÉbÉg 15 ÇÕÅAVolumeMount ÉäÉNÉGÉXÉgÇéÛÇØïtÇØÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…ÉÜÅ[ÉUÇΔÇÃÇ‚ÇËéÊÇËÇ™é¿çsÇ≈Ç´ÇÈǩǫǧǩÇí ímǵNjÇ∑ÅBÉrÉbÉg 15 Ç™ÉZÉbÉgÇ≥ÇÍǃǢÇÈÇΔÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕÉÜÅ[ÉUÇΔÇÃÇ‚ÇËéÊÇËÇé¿çsÇ∑ÇÈïKóvÇÕdžÇËÇ‹ÇπÇÒÅBÉrÉbÉg 15 Ç™ÉNÉäÉAÇ≥ÇÍǃǢÇÈÇΔÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕ FSM (File System Manager) Ç…ÇÊǡǃãüããÇ≥ÇÍÇÈÉÅÉJÉjÉYÉÄÇâÓǵǃÉÜÅ[ÉUÇΔÇÃÇ‚ÇËéÊÇËÇé¿çsÇ≈Ç´Ç‹Ç∑ÅB

ÉtÉâÉOÉèÅ[ÉhÇÃÉrÉbÉg 14 ÇégópÇ∑ÇÈÇΔÅAVolumeMount ÉäÉNÉGÉXÉgÇ™ê≥èÌÇ…èIóπǵÇΩèÍçáÇ≈LJÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕìnÇ≥ÇÍÇΩ VolMountInfo ÉåÉRÅ[ÉhÇçXêVÇ∑ÇÈïKóvǙdžÇÈDZÇΔÇ VolumeMount ÇÃåƒÇ—èoǵë§Ç…éwé¶Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÉvÉçÉOÉâÉÄÇ≈ÇÕÅAVolumeMount ÇåƒÇ—èoÇ∑ëOÇ…ÉtÉâÉOÉèÅ[ÉhÇÃÉrÉbÉg 14 Çämé¿Ç…ÉNÉäÉAǵǃǮÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅBÇ‹ÇΩÅAñflÇËílÇΔǵǃÉrÉbÉg 14 Ç™ÉZÉbÉgÇ≥ÇÍÇΩèÍçáÇÕÅAPBGetVolMountInfoSize Ç®ÇÊÇ—PBGetVolMountInfo ÇåƒÇ—èoǵǃ VolMountInfo ÉåÉRÅ[ÉhÇçXêVÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBVolumeMount ÇÃé¿çsÇ™ê≥èÌÇ…èIóπǵǻǢèÍçáÇÕÅAÉtÉâÉOÉèÅ[ÉhÇÃÉrÉbÉg 14 Çñ≥éãǵǃÇ≠ÇæÇ≥Ç¢ÅB

íçà”ê[Ç¢ì«é“Ç»ÇÁÅAMatchAlias ä÷êîåƒÇ—èoǵDžâûìöÇ∑ÇÈÇΔÇ´ÅAAlias Manager ÇÕÉtÉâÉOÉèÅ[ÉhÇÃÉrÉbÉg 14 Ç®ÇÊÇ— 15 ÇégǡǃÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇΔÇÃÇ‚ÇËéÊÇËÇçsǧïKóvǙdžÇÈDZÇΔÇ…ãCÇ√Ç≠ÇÕÇ∏Ç≈Ç∑ÅB

PBRead Ç®ÇÊÇ— PBWrite ÉäÉNÉGÉXÉgÇ…ÇÊÇÈ ioPosMode ÇÃégÇ¢ï˚

2-121 ÉyÅ[ÉWÅAPBRead
2-122 ÉyÅ[ÉWÅAPBWrite

PBRead Ç®ÇÊÇ— PBWrite ä÷êîÇÕ ioPosMode ÉtÉBÅ[ÉãÉhÇ÷ÇÃÉAÉNÉZÉXÇãñâ¬Ç∑ÇÈÇΩÇflÅAçÇÉåÉxÉãÇ» FSRead Ç®ÇÊÇ— FSWrite ä÷êîÇΔî‰ärÇ∑ÇÈÇΔÅAì«Ç›èëÇ´ÉIÉyÉåÅ[ÉVÉáÉìÇ…ëŒÇ∑ÇÈÇÕÇÈǩDžã≠óÕÇ»êßå‰ÇÉvÉçÉOÉâÉÄÇ…íÒãüǵNjÇ∑ÅB

ioPosMode ÇÃÉrÉbÉg 0 ÇΔ 1 ÇÕÉtÉ@ÉCÉãÇÃÉfÅ[É^ÇÃì«Ç›èëÇ´ÇäJénÇ∑ÇÈèÍèäÇéwíËǵNjÇ∑ÅBioPosMode Ç≈ÉrÉbÉg 0 ÇΔ 1 Ç…ÉZÉbÉgÇ≈Ç´ÇÈílÇÕà»â∫ÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB

íËêîílê‡ñæ
fsAtMark0ioPosOffset ÇÕñ≥éãÇ≥ÇÍÇ‹Ç∑ÅBÉIÉyÉåÅ[ÉVÉáÉìÇÕåªç›ÇÃÉ}Å[ÉNÇ©ÇÁäJénÇ≥ÇÍÇ‹Ç∑ÅB
fsFromStart1ioPosOffset ÇÕÉtÉ@ÉCÉãÇÃêÊì™Ç©ÇÁÇÃÉIÉtÉZÉbÉgÇ≈Ç∑ÅB
fsFromLEOF2ioPosOffset ÇÕÉtÉ@ÉCÉãÇÃò_óùìIÇ»ññîˆÇ©ÇÁÇÃÉIÉtÉZÉbÉgÇ≈Ç∑ÅB
fsFromMark3ioPosOffset ÇÕåªç›ÇÃÉ}Å[ÉNÇ©ÇÁÇÃÉIÉtÉZÉbÉgÇ≈Ç∑ÅB

ioPosMode ÇÃÉrÉbÉg 4 ÇΔ 5 ÇÕÅAÉtÉ@ÉCÉãÇ™ï€ë∂Ç≥ÇÍǃǢÇÈÉ{ÉäÉÖÅ[ÉÄÇ÷ÇÃÉäÉNÉGÉXÉgÇèàóùÇ∑ÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…ìnÇ≥ÇÍÇÈÉLÉÉÉbÉVÉÖÇÃégópÇ…ä÷Ç∑ÇÈÉqÉìÉgÇ≈Ç∑ÅBÉrÉbÉg 4 ÇÕÉfÅ[É^ÇÉLÉÉÉbÉVÉÖÇ…äiî[Ç∑ÇÈDZÇΔÇóvãÅǵNjÇ∑ÅBÇ‹ÇΩÅAÉrÉbÉg 5 ÇÕÉfÅ[É^ÇÉLÉÉÉbÉVÉÖÇ…äiî[ǵǻǢDZÇΔÇóvãÅǵNjÇ∑ÅBÉrÉbÉg 4 ÇΔ 5 ÇÕëäå›Ç…îrëºìIÇ≈džÇËÅAóºï˚ÇÃÉrÉbÉgÇìØéûÇ…ÉZÉbÉgÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÅBÇΩÇæÇµÅAÇ«ÇøÇÁÇÃÉrÉbÉgLJÉZÉbÉgÇ≥ÇÍǃǢǻǢèÍçáÅAÉvÉçÉOÉâÉÄÇÕÉfÅ[É^ÇÉLÉÉÉbÉVÉÖÇ…äiî[Ç∑ÇÈǩǫǧǩÇçló∂ǵǻǢDZÇΔÇé¶ÇµÇ‹Ç∑ÅBioPosMode Ç≈ÉrÉbÉg 4 ÇΔ 5 Ç…ÉZÉbÉgÇ≈Ç´ÇÈílÇÕà»â∫ÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB

íËêîílê‡ñæ
(íËêîǻǵ)0DZÇÃÉäÉNÉGÉXÉgÇÉLÉÉÉbÉVÉÖÇ…äiî[Ç∑ÇÈǩǫǧǩÇçló∂ǵNjÇπÇÒÅB
pleaseCacheMask16â¬î\Ç»èÍçáÇÕÅADZÇÃÉäÉNÉGÉXÉgÇÉLÉÉÉbÉVÉÖÇ…äiî[ǵǃÇ≠ÇæÇ≥Ç¢ÅB
noCacheMask32DZÇÃÉäÉNÉGÉXÉgÇÉLÉÉÉbÉVÉÖÇ…äiî[ǵǻǢDZÇΔÇä˙ë“ǵNjÇ∑ÅB

íçà”ÅF
ì¡íËÇÃÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈ÇÕÅAÉLÉÉÉbÉVÉÖÇÃégópÇ…ä÷Ç∑ÇÈÉqÉìÉgÉrÉbÉgÇÃàÍï˚Ç‹ÇΩÇÕóºï˚Çñ≥éãÇ∑ÇÈèÍçáǙdžÇËÇ‹Ç∑ÅBǬNjÇËÅAnoCache ÉrÉbÉgÇÉZÉbÉgǵÇΩèÍçáÇ…ÉLÉÉÉbÉVÉÖÇégópÇ∑ÇÈDZÇΔLJdžÇÍÇŒÅApleaseCache ÉrÉbÉgÇÉZÉbÉgǵÇΩèÍçáÇ…ÉLÉÉÉbÉVÉÖÇégópǵǻǢDZÇΔLJdžÇËÇ‹Ç∑ÅBÇ‹ÇΩÅAÇ«ÇÒÇ»èÍçáDžLJÉLÉÉÉbÉVÉÖÇégópǵÇΩÇËÅAÉLÉÉÉbÉVÉÖÇNjǡÇΩÇ≠égópǵǻǢDZÇΔLJdžÇËÇ‹Ç∑ÅBÇΩÇæÇµÅAÉvÉçÉOÉâÉÄÇ™óºï˚ÇÃÉrÉbÉgÇÉNÉäÉAǵÇΩNjNjDžǵǃǮÇ≠ÇΔÅADZÇÍÇÁÇÃÉrÉbÉgÇçló∂Ç∑ÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕÅAì«Ç›èëǴǵÇΩÉfÅ[É^Ç™ÉvÉçÉOÉâÉÄÇ…ÇÊǡǃçƒìxïKóvÇΔÇ≥ÇÍÇÈǩǫǧǩÇîªífÇ≈Ç´Ç»Ç≠Ç»ÇËÇ‹Ç∑ÅB

ioPosMode ÇÃÉrÉbÉg 6 (rdVerify) ÇÕÅAì«Ç›çûÇ› (èëÇ´çûÇ›Ç≈ÇÕÇ»Ç≠) Ç™ÉfÅ[É^É\Å[ÉXÇ©ÇÁíºê⁄çsÇÌÇÍÅAÉÅÉÇÉäì‡ÇÃÉfÅ[É^ÇΔî‰ärǵǃåüèÿÇ™çsÇÌÇÍÇÈDZÇΔÇóvãÅǵNjÇ∑ÅBǪÇÃåãâ ÅArdVerify Ç™ÉZÉbÉgÇ≥ÇÍÇΩì«Ç›çûÇ›ÉäÉNÉGÉXÉgÇéÛÇØéÊÇ¡ÇΩÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕÅAÉfÅ[É^ÇÃàÍïîÇ™äiî[Ç≥ÇÍǃǢÇÈǩLJǵÇÍǻǢÉLÉÉÉbÉVÉÖÇîjä¸ÇµÅAǪÇÃÉfÅ[É^É\Å[ÉX (ÉçÅ[ÉJÉãÉ{ÉäÉÖÅ[ÉÄÇÃèÍçáÅAÉfÅ[É^É\Å[ÉXÇÕÉfÉBÉXÉNÉhÉâÉCÉoÇ…Ç»ÇËÇ‹Ç∑) Ç…ÉfÅ[É^ÇçƒìxóvãÅÇ∑ÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBÉfÅ[É^É\Å[ÉXÇ™ÉfÉBÉXÉNÉhÉâÉCÉoÇÃèÍçáÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕ rdVerify ÉäÉNÉGÉXÉgÇǪÇÃÉfÉBÉXÉNÉhÉâÉCÉoÇ…ìnǵÅAÉfÉBÉXÉNÉhÉâÉCÉoÇÕìØÇ∂èàóùÇé¿çsǵNjÇ∑ÅBǬNjÇËÅAÉfÅ[É^ (ÉfÉBÉXÉNÉnÅ[ÉhÉEÉFÉAè„ÇÃÉLÉÉÉbÉVÉÖÇä‹Çfi) ÇÃàÍïîÇ™äiî[Ç≥ÇÍǃǢÇÈâ¬î\ê´ÇÃdžÇÈÉLÉÉÉbÉVÉÖÇîjä¸ÇµÇƒÅAǪÇÃÉ\Å[ÉX (ÉfÉBÉXÉNÉnÅ[ÉhÉEÉFÉA) Ç…ÉfÅ[É^ÇçƒìxóvãÅǵNjÇ∑ÅBrdVerify ÇÃîwå„DždžÇÈÉAÉCÉfÉAÇÕÅAÉvÉçÉOÉâÉÄÇÕÉ{ÉäÉÖÅ[ÉÄÇ…ÉfÅ[É^ÇèëÇ´çûÇ›ÅAÇ≥ÇÁÇ…ÉfÉBÉXÉNÉ{ÉäÉÖÅ[ÉÄÇÃÉfÅ[É^ÇèëÇ´çûÇ›ÉoÉbÉtÉ@Ç…äiî[Ç≥ÇÍǃǢÇÈÉfÅ[É^ÇΔî‰ärÇ∑ÇÈÇÊǧDžÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…óvãÅÇ∑ÇÈDZÇΔÇ™Ç≈Ç´ÇÈÇΔǢǧDZÇΔÇ≈Ç∑ÅBFinder ÇÕÉtÉ@ÉCÉãÇÉtÉçÉbÉsÅ[ÉfÉBÉXÉNÇ…ÉRÉsÅ[Ç∑ÇÈÇΔÇ´ÇæÇØÅADZÇÃÉeÉNÉjÉbÉNÇégópǵNjÇ∑ÅB

èdóvÅF
HFS ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃåªç›ÇÃÉoÅ[ÉWÉáÉìÇ…ÇÕÅArdVerify ÉäÉNÉGÉXÉgÇ…à´âeãøÇó^ǶÇÈÉoÉOÇ™ë∂ç›ÇµÇ‹Ç∑ÅBÉfÉBÉXÉNÇÃÉfÅ[É^ÇÉÅÉÇÉäì‡ÇÃÉfÅ[É^ÇΔî‰ärÇ∑ÇÈÇÃÇ≈ÇÕÇ»Ç≠ÅAHFS ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕé¿ç€Ç…ÇÕÉäÉNÉGÉXÉgÇ…ä‹Ç‹ÇÍÇÈÉtÉã 512 ÉoÉCÉgÉuÉçÉbÉNÇÉ\Å[ÉXÉfÉoÉCÉXÇ©ÇÁÉoÉbÉtÉ@Ç…ì«Ç›çûÇÒÇ≈ÅAî‰ärÇçsǧë„ÇÌÇËÇ…ÉIÉäÉWÉiÉãÇÃÉfÅ[É^Çè„èëǴǵǃǢNjÇ∑ÅBÇΩǢǃǢÇÃèÍçáÅADZÇÍÇÕÉfÉoÉCÉXÇ…èëÇ´çûÇ‹ÇÍÇΩÉfÅ[É^ÇΔNjǡÇΩÇ≠ìØÇ∂Ç≈Ç∑Ç™ÅAÉÅÉfÉBÉAÇ‹ÇΩÇÕÉnÅ[ÉhÉEÉFÉAè·äQÇÃÇΩÇflÇ…âΩÇÁÇ©ÇÃÉfÅ[É^ÉGÉâÅ[Ç™î≠ê∂ǵǃǢÇÈÇΔÅAÉIÉäÉWÉiÉãÇÃèëÇ´çûÇ›ÉfÅ[É^ÉoÉbÉtÉ@Ç™âÛÇÍǃǵNjǧâ¬î\ê´Ç™Ç†ÇËÇ‹Ç∑ÅBDZÇÃñ‚ëËÇâÒîÇ∑ÇÈÇ…ÇÕÅAÇ‹Ç∏ç≈èâÇ…èëÇ´çûÇ›ÉfÅ[É^ÉoÉbÉtÉ@ÇÃÉRÉsÅ[ÇçÏê¨ÇµÅAÉIÉäÉWÉiÉãÇÃÉfÅ[É^ÉoÉbÉtÉ@Ç≈ÇÕÇ»Ç≠ÉRÉsÅ[Ç…ëŒÇµÇƒ rdVerify ÉIÉyÉåÅ[ÉVÉáÉìÇé¿çsǵNjÇ∑ÅBǪǵǃç≈å„Ç…ÉRÉsÅ[ÇΔÉIÉäÉWÉiÉãÇÃÉfÅ[É^ÉoÉbÉtÉ@Çî‰ärǵǃÅAèëÇ´çûÇ‹ÇÍÇΩÉfÅ[É^Ç™ì«Ç›çûÇ‹ÇÍÇΩÉfÅ[É^ÇΔNjǡÇΩÇ≠ìØÇ∂Ç≈džÇÈDZÇΔÇåüèÿǵNjÇ∑ÅB

ioPosMode ÇÃÉrÉbÉg 7 ÇÕ newLine ÉÇÅ[ÉhÇ…ëŒÇ∑ÇÈÉäÉNÉGÉXÉgÇ≈Ç∑ÅBÉrÉbÉg 7 Ç™ÉZÉbÉgÇ≥ÇÍǃǢÇÈÇΔÅAioPosMode ÇÃè„à ÉoÉCÉgÇÕÅAǪÇÃï∂éöÇ™ null ($00) Ç≈džǡǃLJ newLine ï∂éöÇ…Ç»ÇËÇ‹Ç∑ÅBÉrÉbÉg 7 Ç™ÉZÉbÉgÇ≥ÇÍǃǢÇÈÇΔÇ´ÇÕÅAéüÇÃÇ¢Ç∏ÇÍÇ©ÇÃèåèÇ™êÆÇ§ÇΔì«Ç›çûǛǙíÜé~Ç≥ÇÍÇ‹Ç∑ÅB

  • ioReqCount ÉoÉCÉgÇ™ì«Ç›çûÇ‹ÇÍÇΩÅB
  • ÉtÉ@ÉCÉãÇÃññîˆÇ…íBǵÇΩÅB
  • newLine ï∂éöÇ™ì«Ç›çûÇ‹ÇÍÇΩÅBnewLine ï∂éöÇ™åüèoÇ≥ÇÍÇÈÇΔÅAǪÇÍÇÕ ioBuffer Ç…äiî[Ç≥ÇÍǃǢÇÈç≈å„ÇÃï∂éöÇ…Ç»ÇËÅAioActCount ÇÕǪÇÍÇä‹ÇfiDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

newLine ÉÇÅ[ÉhÇégópÇ∑ÇÈÇΔÇ´ÅAHFS ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÕ 1 ìxÇ…ÉtÉ@ÉCÉãÇà 1 ÉuÉçÉbÉN (512 ÉoÉCÉg) ÇÉtÉ@ÉCÉãÉVÉXÉeÉÄÉLÉÉÉbÉVÉÖÉuÉçÉbÉN (ioBuffer Ç…ÇÊǡǃéwÇ≥ÇÍÇÈÉÜÅ[ÉUÉoÉbÉtÉ@Ç≈ÇÕÇ»Ç≠) Ç…ì«Ç›çûÇ›ÅAäeÉoÉCÉgÇ≈ newLine ï∂éöÇåüçıÇ∑ÇÈÇΩǗDžǪÇÃÉfÅ[É^Ç 1 ÉoÉCÉgÇ∏ǬÉÜÅ[ÉUÉoÉbÉtÉ@Ç…ÉRÉsÅ[ǵNjÇ∑ÅBnewLine ÉÇÅ[ÉhÇ≈ÇÕÅAÉtÉ@ÉCÉãÇÕ 1 ìxÇ… 1 ÉuÉçÉbÉNÇ∏Ǭì«Ç›çûÇ‹ÇÍÇÈÇΩÇflÅADZÇÍÇÕç≈LJéûä‘ÇÃǩǩÇÈÉtÉ@ÉCÉãÇÃì«Ç›çûÇ›ï˚ñ@ÇΔǢǶNjÇ∑ÅB

GetVInfo Ç…ä÷Ç∑ÇÈí«â¡åüì¢éñçÄ

2-137 ÉyÅ[ÉWÅAGetVInfo

É{ÉäÉÖÅ[ÉÄÇéwíËÇ∑ÇÈ drvNum ÉpÉâÉÅÅ[É^ÇÕÅAÉhÉâÉCÉuî‘çÜÅAÉ{ÉäÉÖÅ[ÉÄéQèΔî‘çÜÅA0 (ÉfÉtÉHÉãÉgÇÃÉ{ÉäÉÖÅ[ÉÄ)ÅAÇ‹ÇΩÇÕçÏãΔÉfÉBÉåÉNÉgÉäî‘çÜÇÃÇ¢Ç∏ÇÍǩDžǻÇËÇ‹Ç∑ÅBvolName ÉpÉâÉÅÅ[É^ÇÕ Str27 ÉoÉbÉtÉ@ÇéwÇ∑Ç©ÅANIL Ç…ê›íËÇ≥ÇÍǃǢÇÈïKóvǙdžÇËÇ‹Ç∑ÅBfreeBytes ÉpÉâÉÅÅ[É^ÇÕÅA2GB Çí¥Ç¶ÇÈãÛÇ´óÃàÊÇä‹ÇfiÉ{ÉäÉÖÅ[ÉÄÇ≈ÇÕê≥ämÇ≈Ç»Ç≠Ç»ÇËÇ‹Ç∑ÅB

Ç¢Ç≠ǬǩÇÃÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ…ÇÕïsïKóvÇ» ioCompletion ÉtÉBÅ[ÉãÉhǙdžÇÈ

2-142 ÉyÅ[ÉWÅAPBOffLine
2-219 ÉyÅ[ÉWÅAPBGetVolMountInfoSize
2-220 ÉyÅ[ÉWÅAPBGetVolMountInfo
2-223 ÉyÅ[ÉWÅAPBVolumeMount

DZÇÍÇÁÇÃÉãÅ[É`ÉìÇ…ëŒÇ∑ÇÈÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ≈ÇÕÅAì¸óÕÉtÉBÅ[ÉãÉhÇΔǵǃÇà ioCompletion ÉtÉBÅ[ÉãÉhÇÉäÉXÉgÇ∑ÇÈïKóvÇÕdžÇËÇ‹ÇπÇÒÅBDZÇÍÇÁÇÃÉãÅ[É`ÉìÇÕìØä˙ìIÇ…ÇÃÇ›é¿çsÇ≈Ç´ÇÈÇΩÇflÅAioCompletion ÉtÉBÅ[ÉãÉhÇÕèÌÇ…ñ≥éãÇ≥ÇÍÇ‹Ç∑ÅB

PBHGetVInfo Ç…ä÷ǵǃì¡Ç…åüì¢Ç∑Ç◊Ç´ñ‚ëË

2-145 ÉyÅ[ÉWÅAPBHGetVInfo

éüÇÃÅuì¡Ç…åüì¢Ç∑Ç◊Ç´ñ‚ëËÅvÇí«â¡ÇµÇƒÇ≠ÇæÇ≥Ç¢ÅB

ioVolIndex ÇÃílÇ™ïâÇÃèÍçáÅAFile Manager ÇÕïWèÄìIÇ»ï˚ñ@Ç≈ ioNamePtr ÇΔ ioVRefNum ÇégǡǃÅAÉ{ÉäÉÖÅ[ÉÄÇåàíËǵNjÇ∑ÅBǵǩǵÅAPBHGetVInfo ÇÕ ioNamePtr Ç…ìnǵÇΩÉAÉhÉåÉXÇéùǬÉoÉbÉtÉ@Ç…É{ÉäÉÖÅ[ÉÄñºÇï‘Ç∑ÇΩÇflÅAì¸óÕǵÇΩÉpÉXñºÇÕïœçXÇ≥ÇÍÇ‹Ç∑ÅBì¸óÕÉpÉXñºÇïœçXǵÇΩÇ≠ǻǢèÍçáÇÕÅAǪÇÃÉRÉsÅ[ÇçÏê¨ÇµÇƒÅAǪÇÃÉRÉsÅ[Ç PBHGetVInfo Ç…ìnǵNjÇ∑ÅB

PBHGetVInfo Ç…ÇÊǡǃï‘Ç≥ÇÍÇÈÉpÉXñºÇÕÉRÉçÉìÇä‹ÇÒÇ≈ǢǻǢÇΩÇflÅAÉ{ÉäÉÖÅ[ÉÄÇ÷ÇÃÉtÉãÉpÉXñºÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅB

å√Ç¢ÉvÉçÉOÉâÉÄÇΔÇÃå›ä∑ê´Çà€éùÇ∑ÇÈÇΩÇflÅAPBHGetVInfo Ç…ÇÊǡǃï‘Ç≥ÇÍÇÈílÇÃàÍïîÇÕÉ{ÉäÉÖÅ[ÉÄÇà VCB (Volume Control Block) Ç…äiî[Ç≥ÇÍÇÈLJÇÃÇ≈ÇÕdžÇËÇ‹ÇπÇÒÅBì¡Ç…ÅAéüÇÃì_Ç…íçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅB

  • ioVNmAlBlks Ç®ÇÊÇ— ioVFrBlk ÇÕÅAioVAlBlkSiz ÇèÊÇ∏ÇÈÇΔÇ´Ç…èÌÇ… 2GB ñ¢ñûÇ…Ç»ÇÈílÇ…êßå¿Ç≥ÇÍÇ‹Ç∑ÅB
  • ioVNmAlBlks Ç…ÇÕÅAÉJÉ^ÉçÉOÇ®ÇÊÇ—ÉGÉNÉXÉeÉìÉgÉIÅ[ÉoÅ[ÉtÉçÅ[ÉtÉ@ÉCÉãÇ≈égópÇ≥ÇÍÇÈÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÇ™ä‹Ç‹ÇÍǻǢDZÇΔǙdžÇËÇ‹Ç∑ÅB
  • HFS Ç®ÇÊÇ— HFS Plus É{ÉäÉÖÅ[ÉÄÇÃóºï˚Ç≈ ioVSigWord Ç…ÇÕ $4244 Ç™ï‘Ç≥ÇÍÇ‹Ç∑ÅB

êßå¿ÇéÛÇØÇ»Ç¢ëçåvÉoÉCÉgÉJÉEÉìÉgÅAãÛÇ´ÉoÉCÉgÉJÉEÉìÉgÅAÇ®ÇÊÇ—é¿ç€Çà ioVSigWord Ç™ïKóvÇ»èÍçáÇÕÅAPBHGetVInfo ÇÃë„ÇÌÇËÇ… PBXGetVolInfo ÇégópǵNjÇ∑ÅB

FSpGetFInfo ÇÕÉfÉBÉåÉNÉgÉäÇΔÇΔLJDžìÆçÏǵǻǢ

2-160 ÉyÅ[ÉWÅAFSpGetFInfo

FSpGetFInfo ä÷êîÇégópÇ∑ÇÈÇΔÅAÉtÉ@ÉCÉãÇ…ä÷Ç∑ÇÈ Finder èÓïÒÇéÊìæÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹Ç∑Ç™ÅAÉfÉBÉåÉNÉgÉäÇ…ä÷Ç∑ÇÈ Finder èÓïÒÇéÊìæÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÅB

FSpSetFInfo ÇÕÉfÉBÉåÉNÉgÉäÇΔÇΔLJDžìÆçÏǵǻǢ

2-160 ÉyÅ[ÉWÅAFSpSetFInfo

FSpSetFInfo ä÷êîÇégópÇ∑ÇÈÇΔÅAÉtÉ@ÉCÉãÇ…ä÷Ç∑ÇÈ Finder èÓïÒÇê›íËÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹Ç∑Ç™ÅAÉfÉBÉåÉNÉgÉäÇ…ä÷Ç∑ÇÈ Finder èÓïÒÇê›íËÇ∑ÇÈDZÇΔÇÕÇ≈Ç´Ç‹ÇπÇÒÅB

FSpExchangeFiles ÇΔ PBExchangeFiles - âΩÇ™åä∑Ç≥ÇÍÇÈÇ©

2-165 ÉyÅ[ÉWÅAFSpExchangeFiles
2-206 ÉyÅ[ÉWÅAPBExchangeFiles

FSpExchangeFiles ä÷êîÇÕÅA2 ǬÇÃÉtÉ@ÉCÉãÇëŒè€Ç…É{ÉäÉÖÅ[ÉÄÇÃÉJÉ^ÉçÉOÇ®ÇÊÇ—ÉtÉ@ÉCÉãÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉN (Ç«ÇøÇÁÇ©ÇÃÉtÉ@ÉCÉãÇ™ÉIÅ[ÉvÉìǵǃǢÇÈèÍçá) ÇÃèÓïÒÇïœçXÇ∑ÇÈDZÇΔÇ≈ÅAǪÇÍǺÇÍÇÃÉtÉ@ÉCÉãÇ…ä‹Ç‹ÇÍÇÈÉfÅ[É^Çåä∑ǵNjÇ∑ÅBì¡Ç…ÅAéüÇÃÇÊǧǻïœçXÇ™â¡Ç¶ÇÁÇÍÇ‹Ç∑ÅB

2 ǬÇÃÉtÉ@ÉCÉãÇÃÉ{ÉäÉÖÅ[ÉÄÉJÉ^ÉçÉOÉGÉìÉgÉäÇ…ä‹Ç‹ÇÍÇÈéüÇÃÉtÉBÅ[ÉãÉhÇ™åä∑Ç≥ÇÍÇ‹Ç∑ ( PBExchangeFiles Ç©ÇÁå©Çƒ)ÅB

ioFlStBlkÉfÅ[É^ÉtÉHÅ[ÉNÇÃêÊì™ÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉN
ioFlLgLenÉfÅ[É^ÉtÉHÅ[ÉNÇÃò_óùìIÇ» end-of-file
ioFlPyLenÉfÅ[É^ÉtÉHÅ[ÉNÇÃï®óùìIÇ» end-of-file
ioFlRStBlkÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇÃêÊì™ÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉN
ioFlRLgLenÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇÃò_óùìIÇ» end-of-file
ioFlRPyLenÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇÃï®óùìIÇ» end-of-file
ioFlMdDatç≈å„Ç…èCê≥Ç≥ÇÍÇΩì˙ïtÇΔéûçè

2 ǬÇÃÉtÉ@ÉCÉãÇÃÉfÅ[É^ÉtÉHÅ[ÉNÇΔÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇ™åä∑Ç≥ÇÍÇ‹Ç∑ÅB

2 ǬÇÃÉtÉ@ÉCÉãÇ…ëŒÇ∑ÇÈîCà”ÇÃÉIÅ[ÉvÉìÉtÉ@ÉCÉãÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇ…ä‹Ç‹ÇÍÇÈéüÇÃÉtÉBÅ[ÉãÉhÇ™åä∑Ç≥ÇÍÇ‹Ç∑ÅB

fcbFlNumÉtÉ@ÉCÉãIDî‘çÜ
fcbDirIDÉtÉ@ÉCÉãÇÃêeÉfÉBÉåÉNÉgÉä ID
fcbCNameÉtÉ@ÉCÉãÇÃñºëO

íçà”ÅF
ÉtÉ@ÉCÉãÇÃñºëOÇΔêeÉfÉBÉåÉNÉgÉä ID ÇÕÉtÉ@ÉCÉãÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNì‡Ç≈åä∑Ç≥ÇÍÇÈÇΩÇflÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕ 2 ǬÇÃÉtÉ@ÉCÉãÇ÷ÇÃîCà”ÇÃÉIÅ[ÉvÉìéQèΔî‘çÜÇåä∑ÇµÇ»ÇØÇÍnjǻÇÁÇ»Ç≠Ç»ÇËÇ‹Ç∑ÅB

ëºÇÃÉvÉçÉOÉâÉÄÇ™åä∑Ç≥ÇÍÇÈÉtÉ@ÉCÉãÇÃàÍï˚Ç‹ÇΩÇÕóºï˚Ç÷ÇÃÉAÉNÉZÉXÉpÉXÇÉIÅ[ÉvÉìǵǃǢÇÈâ¬î\ê´Ç™Ç†ÇÈÇΩÇflÅAFSpExchangeFiles ÇåƒÇ—èoÇ∑ëOÇ…ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕóºï˚ÇÃÉtÉ@ÉCÉãÇ÷ÇÃîrëºìIÇ»ì«Ç›èëÇ´ÉAÉNÉZÉXå† (fsRdWrPerm) ÇämóßǵǃÇ≠ÇæÇ≥Ç¢ÅBóºï˚ÇÃÉtÉ@ÉCÉãÇ÷ÇÃîrëºìIÇ»ì«Ç›èëÇ´ÉAÉNÉZÉXÇçsǧDZÇΔÇ≈ÅAëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕåä∑Ç≥ÇÍÇÈÉtÉ@ÉCÉãÇÃàÍï˚Ç‹ÇΩÇÕóºï˚Ç÷ÇÃèëÇ´çûÇ›ÉAÉNÉZÉXÇéÊìæÇ≈Ç´Ç»Ç≠Ç»ÇÈÇΩÇflÅAFSpExchangeFiles Ç™ëºÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…âeãøÇó^ǶǻǢDZÇΔÇ™ï€èÿÇ≥ÇÍÇ‹Ç∑ÅB

íçà”ÅF
FSpExchangeFiles ÇÕÉtÉ@ÉCÉãÉçÉbÉNëÆê´Ççló∂ǵNjÇπÇÒÅBDZÇÃÇΩÇflÅAàÍï˚Ç‹ÇΩÇÕóºï˚ÇÃÉtÉ@ÉCÉãÇ™ÉçÉbÉNÇ≥ÇÍǃǢÇÈèÍçáÇ≈LJåä∑Ç™é¿çsÇ≥ÇÍÇ‹Ç∑ÅBFSpExchangeFiles ÇåƒÇ—èoÇ∑ëOÇ…ÅAóºï˚ÇÃÉtÉ@ÉCÉãÇ÷ÇÃîrëºìIÇ»ì«Ç›èëÇ´ÉAÉNÉZÉXÇéÊìæÇ∑ÇÈDZÇΔÇ≈ÅAÉçÉbÉNÇ≥ÇÍǃǢÇÈÉtÉ@ÉCÉãÇÕèëÇ´çûÇ›ÉAÉNÉZÉXÇ…ÇÊǡǃÉIÅ[ÉvÉìÇ≈Ç´Ç»Ç≠Ç»ÇÈÇΩÇflÅAÉtÉ@ÉCÉãÇÃÉçÉbÉNÇämé¿Ç…âèúÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

HOpenDFÅAPBHOpenDFÅAÇ®ÇÊÇ— paramErr åãâ ÉRÅ[Éh

2-169 ÉyÅ[ÉWÅAHOpenDF
2-169 ÉyÅ[ÉWÅAPBHOpenDF

HOpenDF Ç‹ÇΩÇÕ PBHOpenDF ä÷êîÇ…ÉGÉâÅ[Ç™î≠ê∂ǵǃ paramErr åãâ ÉRÅ[ÉhÇ™ï‘Ç≥ÇÍÇÈèÍçá (HOpenDF Ç‹ÇΩÇÕ PBHOpenDF Ç™égópâ¬î\Ç≈ǻǢDZÇΔÇé¶ÇµÇƒÇ¢Ç‹Ç∑)ÅAìØÇ∂ÉpÉâÉÅÅ[É^Ç HOpen Ç‹ÇΩÇÕ PBHOpen Ç…ìnǵǃÉäÉNÉGÉXÉgÇçƒééçsǵǃÇ≠ÇæÇ≥Ç¢ÅBÇΩÇΔǶnjÅAéüÇÃÇÊǧǻÉRÅ[ÉhÇé¿çsǵNjÇ∑ÅB


     error = HOpenDF(vRefNum, dirID, fileName, permission, &refNum);
     if ( error == paramErr )
     {
         /* HOpenDF Ç™ÉTÉ|Å[ÉgÇ≥ÇÍÇƒÇ¢Ç»ÇØÇÍÇŒÅAHOpen Çégóp */
         error = HOpen(vRefNum, dirID, fileName, permission, &refNum);
     }

ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioFVersNum ÉtÉBÅ[ÉãÉhǙǻǢ

2-183 ÉyÅ[ÉWÅAPBHOpenDF
2-184 ÉyÅ[ÉWÅAPBHOpenRF
2-185 ÉyÅ[ÉWÅAPBHOpen
2-187 ÉyÅ[ÉWÅAPBHCreate
2-189 ÉyÅ[ÉWÅAPBHDelete
2-194 ÉyÅ[ÉWÅAPBHGetFInfo
2-196 ÉyÅ[ÉWÅAPBHSetFInfo
2-197 ÉyÅ[ÉWÅAPBHSetFLock
2-198 ÉyÅ[ÉWÅAPBHRstFLock
2-199 ÉyÅ[ÉWÅAPBHRename

ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioFVersNum ÉtÉBÅ[ÉãÉhÇ™î≤ÇØÇƒÇ¢Ç‹Ç∑ÅBioFVersNum ÇÕÉ[ÉçÇ…èâä˙âªÇµÇƒÇ≠ÇæÇ≥Ç¢ÅBÇΔǢǧÇÃLJÅAÉAÉNÉZÉXÇ≥ÇÍÇÈÉ{ÉäÉÖÅ[ÉÄÇ™ MFS (Macintosh File System) É{ÉäÉÖÅ[ÉÄÇ≈džÇÈèÍçáÅADZÇÍÇÁÇÃåƒÇ—èoǵÇÕéûë„íxÇÍDžǻǡǃǵNjǡÇΩ MFS ÉRÅ[ÉhÇé¿çsÇ∑ÇÈÇΩÇflÇ≈Ç∑ÅB

ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioMisc ÉtÉBÅ[ÉãÉhǙǻǢ

2-183 ÉyÅ[ÉWÅAPHHOpenDF
2-184 ÉyÅ[ÉWÅAPHHOpenRF
2-185 ÉyÅ[ÉWÅAPBHOpen

ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioMisc ÉtÉBÅ[ÉãÉhÇ™î≤ÇØÇƒÇ¢Ç‹Ç∑ÅBioMisc ÇÕÅAPHHOpenDFÅAPHHOpenRFÅAÇ‹ÇΩÇÕ PBHOpen ÇåƒÇ—èoÇ∑ëOÇ…É[ÉçÇ…èâä˙âªÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBàÍïîÇà Macintosh ÉÇÉfÉãÇ≈ ioMisc ÇÉ[ÉçÇ…èâä˙âªÇ≈ǴǻǢÇΔÅAÉVÉXÉeÉÄÇ™ÉNÉâÉbÉVÉÖÇ∑ÇÈå¥àˆÇ…Ç»ÇËÇ‹Ç∑ÅB

PBGetCatInfo ÇÃ ioFDirIndex ÇÃégópãKë•

2-191 ÉyÅ[ÉWÅAPBGetCatInfo

PBGetCatInfo Çà ioFDirIndex ÇÃégópãKë•Ç…ä÷Ç∑ÇÈê‡ñæÇéüÇÃÇÊǧDžïœçXǵǃÇ≠ÇæÇ≥Ç¢ÅB

PBGetCatInfo ä÷êîÇÕéüÇÃãKë•DžǵÇΩǙǡǃÉtÉ@ÉCÉãÇ‹ÇΩÇÕÉfÉBÉåÉNÉgÉäÇëIëǵNjÇ∑ÅB

  • ioFDirIndex ÇÃílÇ™ê≥ÇÃèÍçáÅAioNamePtr ÇÕì¸óÕÉpÉâÉÅÅ[É^ÇΔǵǃégópÇ≥ÇÍÇ∏ÅAPBGetCatInfo ÇÕÅAioVRefNum ÇΔ ioDirID Ç…ÇÊǡǃéwíËÇ≥ÇÍÇÈÉfÉBÉåÉNÉgÉä (ioVRefNum Ç™É{ÉäÉÖÅ[ÉÄéQèΔî‘çÜÇ‹ÇΩÇÕÉhÉâÉCÉuî‘çÜÇ≈ÅAioDirID Ç™ 0 ÇÃèÍçáÅADZÇÍÇÕÉãÅ[ÉgÉfÉBÉåÉNÉgÉäÇ…Ç»ÇËÇ‹Ç∑) ì‡Ç≈ÉfÉBÉåÉNÉgÉäÉCÉìÉfÉbÉNÉXÇ™ ioFDirIndex Ç≈džÇÈÉtÉ@ÉCÉãÇ‹ÇΩÇÕÉfÉBÉåÉNÉgÉäÇ…ä÷Ç∑ÇÈèÓïÒÇï‘ǵNjÇ∑ÅBioNamePtr Ç™ NIL Ç≈ǻǢèÍçáÅADZÇÃÉ|ÉCÉìÉ^ÇÕÉtÉ@ÉCÉãÇ‹ÇΩÇÕÉfÉBÉåÉNÉgÉäñºÇ™ï‘Ç≥ÇÍÇÈDZÇΔÇ…Ç»ÇÈ Str31 ÉoÉbÉtÉ@ÇéwǵǃǢÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

  • ioFDirIndex ÇÃílÇ™ 0 ÇÃèÍçáÅAPBGetCatInfo ÇÕÅAioVRefNum ÇΔ ioDirID Ç…ÇÊǡǃéwíËÇ≥ÇÍÇÈÉfÉBÉåÉNÉgÉä (DZDZÇ≈LJÅAioVRefNum Ç™É{ÉäÉÖÅ[ÉÄéQèΔî‘çÜÇ‹ÇΩÇÕÉhÉâÉCÉuî‘çÜÇ≈ÅAioDirID Ç™ 0 ÇÃèÍçáÅADZÇÍÇÕÉãÅ[ÉgÉfÉBÉåÉNÉgÉäÇ…Ç»ÇËÇ‹Ç∑) ì‡Ç≈ ioNamePtr Ç…ÇÊǡǃéwíËÇ≥ÇÍÇÈÉtÉ@ÉCÉãÇ‹ÇΩÇÕÉfÉBÉåÉNÉgÉäÇ…ä÷Ç∑ÇÈèÓïÒÇï‘ǵNjÇ∑ÅB

  • ioFDirIndex ÇÃílÇ™ïâÇÃèÍçáÅAioNamePtr ÇÕì¸óÕÉpÉâÉÅÅ[É^ÇΔǵǃégópÇ≥ÇÍÇ∏ÅAPBGetCatInfo ÇÕÅAioVRefNum ÇΔ ioDirID Ç…ÇÊǡǃéwíËÇ≥ÇÍÇÈÉfÉBÉåÉNÉgÉä (DZDZÇ≈LJÅAioVRefNum Ç™É{ÉäÉÖÅ[ÉÄéQèΔî‘çÜÇ‹ÇΩÇÕÉhÉâÉCÉuî‘çÜÇ≈ÅAioDirID Ç™ 0 ÇÃèÍçáÅADZÇÍÇÕÉãÅ[ÉgÉfÉBÉåÉNÉgÉäÇ…Ç»ÇËÇ‹Ç∑) Ç…ä÷Ç∑ÇÈèÓïÒÇï‘ǵNjÇ∑ÅBioNamePtr Ç™ NIL Ç≈ǻǢèÍçáÅADZÇÃÉ|ÉCÉìÉ^ÇÕÉfÉBÉåÉNÉgÉäñºÇ™ï‘Ç≥ÇÍÇÈDZÇΔÇ…Ç»ÇÈ Str31 ÉoÉbÉtÉ@ÇéwǵǃǢÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioNamePtr ÉtÉBÅ[ÉãÉhǙǻǢ

2-219 ÉyÅ[ÉWÅAPBGetVolMountInfoSize
2-220 ÉyÅ[ÉWÅAPBGetVolMountInfo
2-223 ÉyÅ[ÉWÅAPBHGetLogInInfo

ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioNamePtr ÉtÉBÅ[ÉãÉhÇ™î≤ÇØÇƒÇ¢Ç‹Ç∑ÅBioNamePtr ÇΔ ioVRefNum ÇÕÅAóºï˚ÇΔLJÉ{ÉäÉÖÅ[ÉÄÇéwíËÇ∑ÇÈÇΩÇflÇ…égópǵNjÇ∑ÅB

ioForeignPrivIDirID ÇÕ PBGetForeignPrivs ÇΔ PBSetForeignPrivs Ç≈ÇÕ LongInt Ç≈džÇÈ

2-233 Ç®ÇÊÇ— 2-234 ÉyÅ[ÉW

ioForeignPrivIDirID Ç™é¿ç€Ç… LongInt Ç≈džÇÈÇΔÇ´ÅAÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇÕ ioForeignPrivIDirID ÇêÆêîÇΔǵǃï\é¶ÇµÇ‹Ç∑ÅB

ÉäÉNÉGÉXÉgÇÃé¿çsèáèò

2-239 ÉyÅ[ÉWÅAMyCompletionProc ÇÃå„ÇÃêVǵǢèÓïÒ

ÉtÉ@ÉCÉãã§óLÇ‹ÇΩÇÕ AppleShare ÉtÉ@ÉCÉãÉTÅ[ÉoÇ™ÉAÉNÉeÉBÉuDžǻǡǃǢÇÈÇΔÇ´ÅAFile Manager ÇÕîCà”ÇÃèáèòÇ≈ÉäÉNÉGÉXÉgÇé¿çsǵNjÇ∑ÅBDZÇÍÇÕÅAëOÇ…é¿çsÇ≥ÇÍÇΩÉäÉNÉGÉXÉgÇÃåãâ Ç…àÀë∂Ç∑ÇÈÉäÉNÉGÉXÉgÇ™ë∂ç›Ç∑ÇÈèÍçáÇ…ÅAëÊ 1 ÇÃÉäÉNÉGÉXÉgÇäÆóπÇ∑ÇÈëOÇ…ÉvÉçÉOÉâÉÄÇ™ëÊ 2 ÇÃÉäÉNÉGÉXÉgÇé¿çsÇ∑ÇÈÇΔÉGÉâÅ[Ç™î≠ê∂Ç∑ÇÈÇΔǢǧDZÇΔÇà”ñ°ÇµÇ‹Ç∑ÅBÇΩÇΔǶnjÅAèëÇ´çûÇ›ÉäÉNÉGÉXÉgÇé¿çsǵÇΩå„Ç≈ìØÇ∂ÉfÅ[É^Ç…ëŒÇµÇƒì«Ç›çûÇ›ÉäÉNÉGÉXÉgÇé¿çsÇ∑ÇÈèÍçáÅAèëÇ´çûÇ›ÉäÉNÉGÉXÉgÇ™äÆóπǵÇΩå„Ç≈ì«Ç›çûÇ›ÉäÉNÉGÉXÉgÇ™é¿çsÇ≥ÇÍǻǢÇΔÅAèëÇ´çûÇ‹ÇÍÇΩÉfÅ[É^Ççƒìxê≥ämÇ…ì«Ç›çûÇÒÇ≈Ç¢ÇÈǩǫǧǩÇÕï€èÿÇ≥ÇÍÇ»Ç≠Ç»ÇËÇ‹Ç∑ÅB

åƒÇ—èoǵǙÉfÉBÉXÉNêÿÇËë÷ǶÉ_ÉCÉAÉçÉOÇï\é¶ÇµÇƒÅAÉIÉtÉâÉCÉìDžǻǡǃǢÇÈÉ{ÉäÉÖÅ[ÉÄÇLJǧàÍìxÉIÉìÉâÉCÉìÇ…ñflÇ∑DZÇΔÇ≈ÅAÉäÉNÉGÉXÉgÇÃèáèòÇïœçXÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅB

É{ÉäÉÖÅ[ÉÄÉpÉâÉÅÅ[É^ÉoÉäÉAÉìÉgÇÃÉIÉtÉZÉbÉgÇÕ 2 Ç∏Ǭëùâ¡Ç∑ÇÈ

2-293 ÉyÅ[ÉWÅAÉAÉZÉìÉuÉäåæåÍÇÃäTóvÅAÉfÅ[É^ç\ë¢ëÃ

ioVAlBlkSiz ÇÕÉèÅ[ÉhÇ≈ÇÕÇ»Ç≠ÉçÉìÉOÇ≈džÇÈÇΩÇflÅAÉ{ÉäÉÖÅ[ÉÄÉpÉâÉÅÅ[É^ÉoÉäÉAÉìÉgÇÃÉIÉtÉZÉbÉgÇÕ ioVClpSiz ÇãNì_Džǵǃ 2 Ç∏Ǭëùâ¡ÇµÇƒÇ¢Ç´Ç‹Ç∑ÅBǪÇÃåãâ ÅAioVClpSiz ÇÃÉIÉtÉZÉbÉgÇÕ 52 Ç≈Ç»ÇØÇÍnjǻÇÁÇ∏ÅAioAlBlSt ÇÃÉIÉtÉZÉbÉgÇÕ 56 Ç≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅB

É{ÉäÉÖÅ[ÉÄÇ™ MFS (Macintosh File System)ÅAHFS (Hierarchical File System)ÅAÇ‹ÇΩÇÕ HFS Plus Ç≈ÉtÉHÅ[É}ÉbÉgÇ≥ÇÍǃǢÇÈǩǫǧǩÇÃîªíË

DZÇÍÇ‹Ç≈ Mac OS ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈ÇÕÅAMFSÅAHFSÅAHFS Plus ÇΔǢǧ 3 ǬÇÃÉ{ÉäÉÖÅ[ÉÄÉtÉHÅ[É}ÉbÉgÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǴNjǵÇΩÅBSystem É\ÉtÉgÉEÉFÉA 7.0 Ç©ÇÁ Mac OS 8.0 Ç≈ÇÕÅAMFS Ç®ÇÊÇ— HFS É{ÉäÉÖÅ[ÉÄÉtÉHÅ[É}ÉbÉgÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢNjǵÇΩÅBMac OS 8.1 Ç®ÇÊǗǪÇÍà»ç~Ç≈ÇÕÅAHFS Ç®ÇÊÇ— HFS Plus É{ÉäÉÖÅ[ÉÄÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢNjÇ∑ÅBDZÇÍÇÁ 3 ǬÇÃÉ{ÉäÉÖÅ[ÉÄÉtÉHÅ[É}ÉbÉgÇ≈ÇÕÅAÉçÅ[ÉJÉãÉtÉ@ÉCÉãÉVÉXÉeÉÄ ID ÇΔǵǃÉ[Éç (0) ÇégópǵNjÇ∑ÅBÇ≈ÇÕÅAÇ«ÇÃÇÊǧDžǵǃDZÇÍÇÁ 3 ǬÇÃÉ{ÉäÉÖÅ[ÉÄÉtÉHÅ[É}ÉbÉgÇéØï Ç∑ÇÍnjǢǢÇÃÇ≈ǵÇÂǧǩÅBDZÇÃÇΩÇflÇ…ÇÕÅAPBXGetVolInfo (PBXGetVolInfo Ç™égópÇ≈ǴǻǢèÍçáÇÕ PBHGetVInfo) Ç…ÇÊǡǃ ioVSigWord ÉtÉBÅ[ÉãÉhÇ…ï‘Ç≥ÇÍÇÈÉ{ÉäÉÖÅ[ÉÄÇÃÉVÉOÉlÉ`ÉÉÉèÅ[ÉhÇégópǵNjÇ∑ÅBMFS É{ÉäÉÖÅ[ÉÄÇÕ $D2D7 ÇΔǢǧÉVÉOÉlÉ`ÉÉÇéùÇøÅAHFS É{ÉäÉÖÅ[ÉÄÇÕ $4244 ÇΔǢǧÉVÉOÉlÉ`ÉÉÇéùÇøÇ‹Ç∑ÅBÇ‹ÇΩÅAHFS Plus É{ÉäÉÖÅ[ÉÄÇÃÉVÉOÉlÉ`ÉÉÇÕ $482B Ç≈Ç∑ÅB

èdóvÅF
àÍïîÇÃÉvÉçÉOÉâÉÄÇΔÇÃå›ä∑ê´Çà€éùÇ∑ÇÈÇΩÇflÅAHFS Ç®ÇÊÇ— HFS Plus É{ÉäÉÖÅ[ÉÄÇÃóºï˚Ç…ëŒÇµÇƒ PBGetVInfo ÇΔ PBHGetVInfo ÇÕ $4244 ÇΔǢǧílÇ ioVSigWord Ç…ï‘ǵNjÇ∑ÅBDZÇÃÇΩÇflÅAâ¬î\Ç»èÍçáÇÕïKÇ∏ PBXGetVolInfo ÇégópǵǃÇ≠ÇæÇ≥Ç¢ÅB

éüÇÃÉRÅ[ÉhÇÕÉ{ÉäÉÖÅ[ÉÄÉVÉOÉlÉ`ÉÉÇΔÉtÉ@ÉCÉãÉVÉXÉeÉÄ ID ÇéÊìæÇ∑ÇÈÇΩÇflÇ…égópÇ≈Ç´Ç‹Ç∑ÅB


 OSErr GetVSigWord(short vRefNum, short *vSigWord, short *fsid)
 {
    OSErr         result;
    long          response;
    XVolumeParam  pb;

    pb.ioVRefNum = vRefNum;
    pb.ioXVersion = 0;      // DZÇà XVolumeParam ÇÃÉoÅ[ÉWÉáÉì (0)
    pb.ioNamePtr = NULL;
    pb.ioVolIndex = 0;      // ioVRefNum ÇÃÇ›Çégóp
    // PBXGetVolInfo ÇÕégópÇ≈Ç´ÇÈÇ©
    if ( ( Gestalt(gestaltFSAttr, &response) == noErr ) &&
         ((response & (1L << gestaltFSSupports2TBVols)) != 0) )
    {
       // Yes Ç»ÇÁégópÇ∑ÇÈ
       result = PBXGetVolInfoSync(&pb);
    }
    else
    {
       // No Ç»ÇÁÅAPBHGetVInfo Ç…ñflÇÈ
       result = PBHGetVInfoSync((HParmBlkPtr)&pb);
    }
    // É{ÉäÉÖÅ[ÉÄÇÃÉVÉOÉlÉ`ÉÉÇΔ FSID Çï‘Ç∑
    *vSigWord = pb.ioVSigWord;
    *fsid = pb.ioVFSID;
    // File Manager ÇÃåãâ Çï‘Ç∑
    return ( result );
 }

PBXGetVolInfo

PBXGetVolInfo ä÷êîÇégópÇ∑ÇÈÇΔÅAÉ{ÉäÉÖÅ[ÉÄÇ…ä÷Ç∑ÇÈè⁄ç◊èÓïÒÇéÊìæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBç≈ë 2 ÉeÉâÉoÉCÉgÇ‹Ç≈ÇÃÉ{ÉäÉÖÅ[ÉÄÇëŒè€Ç…É{ÉäÉÖÅ[ÉÄÉTÉCÉYèÓïÒÇÉåÉ|Å[ÉgÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

pascal OSErr PBXGetVolInfoSync(XVolumeParamPtr paramBlock);
pascal OSErr PBXGetVolInfoAsync(XVolumeParamPtr paramBlock);

paramBlock ägí£É{ÉäÉÖÅ[ÉÄÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ÷ÇÃÉ|ÉCÉìÉ^ÅB

XVolumeParam
->ioCompletionProcPträÆóπÉãÅ[É`ÉìÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
<-ioResultOSErrä÷êîÇÃåãâ ÉRÅ[ÉhÅB
<->ioNamePtrStringPtrÉ{ÉäÉÖÅ[ÉÄÇÃñºëOÇ÷ÇÃÉ|ÉCÉìÉ^ÅB
<->ioVRefNumshortì¸óÕéûÇÕÉ{ÉäÉÖÅ[ÉÄédólÅAèoóÕéûÇÕÉ{ÉäÉÖÅ[ÉÄéQèΔî‘çÜÅB
->ioXVersionunsigned longXVolumeParam ÇÃÉoÅ[ÉWÉáÉì (value = 0)ÅB
->ioVolIndexshortÉ}ÉEÉìÉgÇ≥ÇÍǃǢÇÈÇ∑Ç◊ǃÇÃÉ{ÉäÉÖÅ[ÉÄÇéwíËÇ∑ÇÈÇΩÇflÇ…égópÇ∑ÇÈÉCÉìÉfÉbÉNÉXÅB
<-ioVCrDateunsigned longèâä˙âªÇÃì˙ïtÇΔéûçèÅB
<-ioVLsModunsigned longç≈èIèCê≥ÇÃì˙ïtÇΔéûçèÅB
<-ioVAtrbshortÉ{ÉäÉÖÅ[ÉÄëÆê´ÅB
<-ioVNmFlsunsigned shortÉãÅ[ÉgÉfÉBÉåÉNÉgÉäDždžÇÈÉtÉ@ÉCÉãÇÃêîÅB
<-ioVBitMapunsigned shortÉ{ÉäÉÖÅ[ÉÄÉrÉbÉgÉ}ÉbÉvÇÃêÊì™ÉuÉçÉbÉNÅB
<-ioVAllocPtrunsigned shortéüÇÃêVãKÉtÉ@ÉCÉãÇ™énÇ‹ÇÈÉuÉçÉbÉNÅB
<-ioVNmAlBlksunsigned shortÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÇÃêîÅB
<-ioVAlBlkSizunsigned longÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÇÃÉTÉCÉYÅB
<-ioVClpSizunsigned longÉfÉtÉHÉãÉgÇÃÉNÉâÉìÉvÉTÉCÉYÅB
<-ioAlBlStunsigned shortÉ{ÉäÉÖÅ[ÉÄÉuÉçÉbÉNÉ}ÉbÉvÇÃêÊì™ÉuÉçÉbÉNÅB
<-ioVNxtCNIDunsigned longéüÇÃñ¢égópÉJÉ^ÉçÉOÉmÅ[Éh IDÅB
<-ioVFrBlkunsigned shortñ¢égópÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÇÃêîÅB
<-ioVSigWordunsigned shortÉ{ÉäÉÖÅ[ÉÄÉVÉOÉlÉ`ÉÉÅB
<-ioVDrvInfoshortÉhÉâÉCÉuî‘çÜÅB
<-ioVDRefNumshortÉhÉâÉCÉoéQèΔî‘çÜÅB
<-ioVFSIDshortDZÇÃÉ{ÉäÉÖÅ[ÉÄÇèàóùÇ∑ÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃÉtÉ@ÉCÉãÉVÉXÉeÉÄIDÅB
<-ioVBkUpunsigned longç≈èIÉoÉbÉNÉAÉbÉvÇÃì˙ïtÇΔéûçèÅB
<-ioVSeqNumshortì‡ïîìIÇ…égópÇ≥ÇÍÇ‹Ç∑ÅB
<-ioVWrCntunsigned longÉ{ÉäÉÖÅ[ÉÄèëÇ´çûÇ›ÉJÉEÉìÉgÅB
<-ioVFilCntunsigned longÉ{ÉäÉÖÅ[ÉÄè„DždžÇÈÉtÉ@ÉCÉãÇÃêîÅB
<-ioVDirCntunsigned longÉ{ÉäÉÖÅ[ÉÄè„DždžÇÈÉfÉBÉåÉNÉgÉäÇÃêîÅB
<-ioVFndrInfo[8] longFinderÇ…ÇÊǡǃégópÇ≥ÇÍÇ‹Ç∑ÅB
<-ioVTotalBytesUnsignedWideÉ{ÉäÉÖÅ[ÉÄè„DždžÇÈëçÉoÉCÉgêîÅB
<-ioVFreeBytesUnsignedWideÉ{ÉäÉÖÅ[ÉÄè„DždžÇÈãÛÇ´ÉoÉCÉgêîÅB

PBXGetVolInfo ä÷êîÇÕéwíËÇ≥ÇÍÇΩÉ{ÉäÉÖÅ[ÉÄÇ…ä÷Ç∑ÇÈèÓïÒÇï‘ǵNjÇ∑ÅBDZÇÃä÷êîÇÕÅAÅwInside Macintosh: FilesÅxÇ≈ê‡ñæÇ≥ÇÍǃǢÇÈ PBHGetVInfo ä÷êîÇ…ófiéóǵǃǢNjÇ∑Ç™ÅAí«â¡ÇÃÉ{ÉäÉÖÅ[ÉÄóÃàÊèÓïÒÇ 64 ÉrÉbÉgêÆêîÇΔǵǃï‘ǵÅAÉ{ÉäÉÖÅ[ÉÄÇà VCB (Volume Control Block) Ç©ÇÁÉRÉsÅ[ǵÇΩèÓïÒÇèCê≥ǵǻǢì_Ç™àŸÇ»ÇËÇ‹Ç∑ÅBPBXGetVolInfo ÇÉTÉ|Å[ÉgÇ∑ÇÈÉVÉXÉeÉÄÇ≈ÇÕÅAgestaltFSAttr Gestalt ÉZÉåÉNÉ^ÇÃñflÇËílÇ…âûìöǵǃ gestaltFSSupports2TBVols ÉrÉbÉgÇ™ÉZÉbÉgÇ≥ÇÍÇ‹Ç∑ÅB

ÉAÉZÉìÉuÉäåæåÍÇÃèÓïÒ

PBXGetVolInfo Ç…ëŒâûǵÇΩÉgÉâÉbÉvÉ}ÉNÉçÇ®ÇÊÇ—ÉãÅ[É`ÉìÉZÉåÉNÉ^ÇÕà»â∫ÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB

ÉgÉâÉbÉvÉ}ÉNÉçÉZÉåÉNÉ^
_HFSDispatch$0012

åãâ ÉRÅ[Éh

noErr0ä÷êîÇÕê≥èÌÇ…é¿çsÇ≥ÇÍÅAÉGÉâÅ[ÇÕî≠ê∂ǵǃǢNjÇπÇÒÅB
nsvErr-35ǪÇÃÇÊǧǻÉ{ÉäÉÖÅ[ÉÄÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB
paramErr-50ÉfÉtÉHÉãÉgÉ{ÉäÉÖÅ[ÉÄÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB

PBGetXCatInfo

PBGetXCatInfo ä÷êîÇégópÇ∑ÇÈÇΔÅAÉtÉ@ÉCÉãÇΔÉfÉBÉåÉNÉgÉäÇ…ëŒÇ∑ÇÈíZÇ¢ñºëO (MS-DOS å`éÆÇÃñºëO) ÇΔ ProDOS èÓïÒÇéÊìæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

pascal OSErr PBGetXCatInfoSync(XCInfoPBPtr paramBlock);
pascal OSErr PBGetXCatInfoAsync(XCInfoPBPtr paramBlock);

paramBlock XCInfoPBRec Ç÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅB

XCInfoPBRec
->ioCompletionProcPtrPBGetXCatInfoAsync ÇÃäÆóπÉãÅ[É`ÉìÇ÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅB
<-ioResultOSErrPBGetXCatInfo ÇÕǪÇÃåãâ ÉRÅ[ÉhÇDZÇÃÉtÉBÅ[ÉãÉhÇ…äiî[ǵNjÇ∑ÅB
->ioNamePtrStringPtrÉIÉuÉWÉFÉNÉgñºÇ÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅBÇ‹ÇΩÅAioDirID Ç™ÉIÉuÉWÉFÉNÉgÇ≈džÇÈÉfÉBÉåÉNÉgÉäÇéwíËÇ∑ÇÈÇΔÇ´ÇÕ nilÅB
->ioVRefNumshortÉ{ÉäÉÖÅ[ÉÄédólÇä‹Ç›Ç‹Ç∑ÅB
<->ioShortNamePtrStringPtrPascal ï∂éöóÒÉoÉbÉtÉ@ (ç≈è¨ 13 ÉoÉCÉg) Ç÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅBPBGetXCatInfo ÇÕíZÇ¢ñºëOÇDZÇÃÉpÉâÉÅÅ[É^Ç…ÇÊǡǃéQèΔÇ≥ÇÍÇÈÉtÉBÅ[ÉãÉhÇ…äiî[ǵNjÇ∑ÅBioShortNamePtr Ç™ nil Ç…Ç»ÇÈDZÇΔÇÕdžÇËÇ‹ÇπÇÒÅB
<-ioPDTypeshortPBGetXCatInfo ÇÕ ProDOS ÉtÉ@ÉCÉãÇÃÉ^ÉCÉvÇDZÇÃÉtÉBÅ[ÉãÉhÇ…äiî[ǵNjÇ∑ÅB
<-ioPDAuxTypelongPBGetXCatInfo ÇÕ ProDOS ï‚èïÉ^ÉCÉvÇDZÇÃÉtÉBÅ[ÉãÉhÇ…äiî[ǵNjÇ∑ÅB
->ioDirIDlongÉfÉBÉåÉNÉgÉä ID Çä‹ÇfiÇ‹Ç∑ÅB

PBGetXCatInfo ä÷êîÇÕÅADZÇÃä÷êîÇÉTÉ|Å[ÉgÇ∑ÇÈÉ{ÉäÉÖÅ[ÉÄè„ÇÃÉtÉ@ÉCÉãÇΔÉfÉBÉåÉNÉgÉäÇ…ëŒÇ∑ÇÈíZÇ¢ñºëO (MS-DOS å`éÆÇÃñºëO) ÇΔ ProDOS ÉtÉ@ÉCÉã/ï‚èïÉ^ÉCÉvèÓïÒÇï‘ǵNjÇ∑ÅBPBGetXCatInfo ÇÉTÉ|Å[ÉgÇ∑ÇÈÉ{ÉäÉÖÅ[ÉÄÇ≈ÇÕÅAPBHGetVolParms Ç©ÇÁï‘Ç≥ÇÍÇΩ vMAttrib ÉtÉBÅ[ÉãÉhÇ≈ bHasShortName ÉrÉbÉgÇ™ÉZÉbÉgÇ≥ÇÍÇ‹Ç∑ÅB

íZÇ¢ñºëOÇΔ ProDOS ÉtÉ@ÉCÉã/ï‚èïÉ^ÉCÉvÇÃè⁄ç◊DžǬǢǃÇÕÅAÅwInside AppleTalk, second editionÅxÇÃëÊ 13 èÕÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅB

ÉAÉZÉìÉuÉäåæåÍÇÃèÓïÒ

PBGetXCatInfo Ç…Ç∑ÇÈÉgÉâÉbÉvÉ}ÉNÉçÇ®ÇÊÇ—ÉãÅ[É`ÉìÉZÉåÉNÉ^ÇÕà»â∫ÇÃÇΔÇ®ÇËÇ≈Ç∑ÅB

ÉgÉâÉbÉvÉ}ÉNÉçÉZÉåÉNÉ^
_HFSDispatch$003A

åãâ ÉRÅ[Éh

noErr0ä÷êîÇÕê≥èÌÇ…é¿çsÇ≥ÇÍÅAÉGÉâÅ[ÇÕî≠ê∂ǵǃǢNjÇπÇÒÅB
nsvErr-35ǪÇÃÇÊǧǻÉ{ÉäÉÖÅ[ÉÄÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB
fnfErr-43ÉtÉ@ÉCÉãÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÅB
paramErr-50ÉfÉtÉHÉãÉgÉ{ÉäÉÖÅ[ÉÄÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB
dirNFErr-120ÉfÉBÉåÉNÉgÉäÇ™å©Ç¬Ç©ÇËÇ‹ÇπÇÒÅB

êÊì™ÉyÅ[ÉWÇ…ñflÇÈ


ëÊ 3 èÕ - ïWèÄÉtÉ@ÉCÉãÉpÉbÉPÅ[ÉW

ÉAÉNÉeÉBÉxÅ[ÉVÉáÉìÉvÉçÉVÅ[ÉWÉÉÇ≈ÇÕ TECalText ÇåƒÇ—èoÇ∑ïKóvǙdžÇÈ

3-30 ÉyÅ[ÉWÇ©ÇÁ 3-31 ÉyÅ[ÉWÅAÉAÉNÉeÉBÉxÅ[ÉVÉáÉìÉvÉçÉVÅ[ÉWÉÉÇÃèëÇ´ï˚
3-59 ÉyÅ[ÉWÅAMyActivateProc

3-30 ÉyÅ[ÉWÇ©ÇÁ 3-31 ÉyÅ[ÉWÅAÇ®ÇÊÇ— 3-59 ÉyÅ[ÉWÇ≈ÇÕÅAÉJÉXÉ^ÉÄïWèÄÉtÉ@ÉCÉãÉ_ÉCÉAÉçÉOÇ…í«â¡ÇµÇΩÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXóvëfÇÉAÉNÉeÉBÉuÇ…Ç∑ÇÈï˚ñ@Çê‡ñæÇµÇƒÇ¢Ç‹Ç∑ÅBǵǩǵÅAï°êîÇÃÉeÉLÉXÉgï“èWçÄñ⁄ÇÃí«â¡Ç…ä÷òAÇ∑ÇÈâ”èäÇ≈åæãyÇ∑Ç◊Ç´ì‡óeÇ™è»ó™Ç≥ÇÍǃǢNjÇ∑ÅBà»â∫ÇÃÉRÅ[ÉhÇ…é¶Ç∑ÇÊǧDžÅAÉAÉNÉeÉBÉxÅ[ÉVÉáÉìÉvÉçÉVÅ[ÉWÉÉÇê≥èÌÇ…ìÆçÏÇ≥ÇπÇÈÇΩÇflÇ…ÇÕÅATECalText ÇåƒÇ—èoǵÅAmyTEHandle^^.crOnly Ç… 1 Çê›íËǵÅAÇ≥ÇÁÇ… TESetSelect ÇåƒÇ—èoÇ∑ïKóvǙdžÇËÇ‹Ç∑ÅB


 IF (activating) THEN
     BEGIN
         {WindowPeek Ç≈ÇÕÇ»Ç≠ DialogPeek ÇégópÇ∑ÇÈì_Ç…íçà”}
         dlgPeek := DialogPeek(theDialog);

         {É_ÉCÉAÉçÉOì‡ÇÃÇ∑Ç◊ǃÇà editText çÄñ⁄Ç…ÇÊǡǃã§óLÇ≥ÇÍÇÈ TEHandle Ç…ÉAÉNÉZÉXÇ∑ÇÈ}
         {DZÇÃÉtÉBÅ[ÉãÉhÇÕÉAÉNÉeÉBÉxÅ[ÉVÉáÉìéûÇ…ÉJÉåÉìÉgÉtÉBÅ[ÉãÉhÇ…Ç»ÇÈ}
         myTEHandle:= dlgPeek^.textH;

         {ÉAÉNÉeÉBÉxÅ[ÉVÉáÉìéûÇ… lineStarts ÇÇ‚ÇËíºÇ∑ïKóvǙdžÇÈ}
         TECalText(myTEHandle);

         {ÉAÉNÉeÉBÉxÅ[ÉVÉáÉìéûÇ… crOnly Çê›íËÇ∑ÇÈïKóvǙdžÇÈ}
         myTEHandle^^.crOnly := 1;

         {ëIëÇÃê›íËÇ™ìKêÿÇ≈džÇÈDZÇΔÇämîFÇ∑ÇÈ}
         myTECharLength := myTEHandle^^.teLength;
         selectionLen := myTEHandle^^.selEnd - myTEHandle^^.selStart
                         + 1;
         If (myTECharLength > selectionLen) THEN
         TESetSelect(0,myTECharLength,myTEHandle);
     END;

ÉfÉtÉHÉãÉgÇÃïWèÄÉtÉ@ÉCÉãÉJÉåÉìÉgÉfÉBÉåÉNÉgÉä

3-31 ÉyÅ[ÉWÅAÉJÉåÉìÉgÉfÉBÉåÉNÉgÉäÇÃê›íË

2 ǬdžÇÈâ”èèëÇ´ÇÃçÄñ⁄ÇéüÇà 3 ǬÇÃçÄñ⁄Ç…íuÇ´ä∑ǶǃÇ≠ÇæÇ≥Ç¢ÅB

  • ÉÜÅ[ÉUÇ™ÉAÉvÉäÉPÅ[ÉVÉáÉìÇíºê⁄ìIÇ…ãNìÆÇ∑ÇÈèÍçá (ǮǪÇÁÇ≠ÇÕ Finder Ç≈ǪÇÃÉAÉCÉRÉìÇÉ_ÉuÉãÉNÉäÉbÉNǵǃ)ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™äiî[Ç≥ÇÍǃǢÇÈÉfÉBÉåÉNÉgÉäÇ™ÉfÉtÉHÉãÉgÉfÉBÉåÉNÉgÉäÇ…Ç»ÇËÇ‹Ç∑ÅB

  • ÉÜÅ[ÉUÇ™ÉAÉvÉäÉPÅ[ÉVÉáÉìÇä‘ê⁄ìIÇ…ãNìÆÇµ (ǮǪÇÁÇ≠ÇÕǪÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈çÏê¨ÇµÇΩèëófiÇÃÉAÉCÉRÉìÇÉ_ÉuÉãÉNÉäÉbÉNǵǃ)ÅAǪÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÉnÉCÉåÉxÉãÉCÉxÉìÉgÇîFéØÇ≈Ç´ÇÈèÍçáÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ÇÕÅAÉIÅ[ÉvÉìÇ‹ÇΩÇÕàÛç¸ÇçsǧÇΩÇflÇ… kAEOpenDocument Ç‹ÇΩÇÕ kAEPrintDocument Apple ÉCÉxÉìÉgÇ…ä‹Ç‹ÇÍǃǢÇÈèëófiÇÃÉäÉXÉgÇ™ìnÇ≥ÇÍÇ‹Ç∑ÅBDZÇÃÇΔÇ´ÅAFinder èÓïÒÇÕë∂ç›ÇπÇ∏ (AppParmHandle ÇÕ NIL Ç…Ç»ÇËÇ‹Ç∑)ÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™äiî[Ç≥ÇÍǃǢÇÈÉfÉBÉåÉNÉgÉäÇ™ÉfÉtÉHÉãÉgÉfÉBÉåÉNÉgÉäÇ…Ç»ÇËÇ‹Ç∑ÅB

  • ÉÜÅ[ÉUÇ™ÉAÉvÉäÉPÅ[ÉVÉáÉìÇä‘ê⁄ìIÇ…ãNìÆÇµ (ǮǪÇÁÇ≠ÇÕǪÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈çÏê¨ÇµÇΩèëófiÇÃÉAÉCÉRÉìÇÉ_ÉuÉãÉNÉäÉbÉNǵǃ)ÅAǪÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÉnÉCÉåÉxÉãÉCÉxÉìÉgÇîFéØÇ≈ǴǻǢèÍçáÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ…ÇÕ Finder èÓïÒÇ™ìnÇ≥ÇÍÅAFinder èÓïÒÇÃç≈å„Ç…ÉäÉXÉgÇ≥ÇÍǃǢÇÈèëófiÇÃÉfÉBÉåÉNÉgÉäÇ™ÉfÉtÉHÉãÉgÉfÉBÉåÉNÉgÉäÇ…Ç»ÇËÇ‹Ç∑ÅBFinder èÓïÒÇÕÅAAppParmHandle Ç…ÇÊǡǃéQèΔÇ≥ÇÍÅAÉZÉOÉÅÉìÉgÉçÅ[É_ÉãÅ[É`ÉìÇà CountAppFilesÅAGetAppFilesÅAClrAppFilesÅAÇ®ÇÊÇ— GetAppParms Ç…ÇÊǡǃÉAÉNÉZÉXÇ≥ÇÍÇÈÉfÅ[É^Ç≈Ç∑ÅB

ÉäÉXÉg 3-15 Ç≈ÇÕ sfScript ÉtÉBÅ[ÉãÉhÇê›íËǵǃǢǻǢ

3-33 ÉyÅ[ÉWÅAÉäÉXÉg 3-15ÅAÉJÉåÉìÉgÉfÉBÉåÉNÉgÉäÇÃê›íË

ÉRÅ[ÉhÇÃÉäÉXÉgÇ≈ÇÕÅAã^éóçÄñ⁄ sfHookChangeSelection Ç™ï‘Ç≥ÇÍÇÈÇΔÇ´Ç… StandardFileReply ÉåÉRÅ[ÉhÇà sfScript ÉtÉBÅ[ÉãÉhÇê›íËǵǃǢNjÇπÇÒÅBDZÇÍÇ…ÇÊÇËÅAïWèÄÉtÉ@ÉCÉãÇÕèÌÇ…ÉfÉBÉåÉNÉgÉäì‡ÇÃç≈å„ÇÃÉtÉ@ÉCÉãÇëIëÇ∑ÇÈÇÊǧDžê›íËÇ≥ÇÍǃǵNjǢNjÇ∑ÅBéüÇÃçsÇ

 myReplyPtr^.sfScript := smSystemScript;

éüÇÃçsÇÃëOÇ…í«â¡Ç∑ÇÈÇΔÅAñ‚ëËÇ™âåàÇ≥ÇÍÇ‹Ç∑ÅB

 MyDlgHook := sfHookChangeSelection;

êÊì™ÉyÅ[ÉWÇ…ñflÇÈ


ëÊ 4 èÕ - Alias Manager

ResolveAlias ÇÕÉ~ÉjÉ}ÉãÉGÉCÉäÉAÉXÇçXêVÇ∑ÇÈ

4-19 ÉyÅ[ÉW

4-19 ÉyÅ[ÉWÇÃç≈å„Ç…ÅAÅuResolveAlias ÇÕÉ~ÉjÉ}ÉãÉGÉCÉäÉAÉXÇçXêVǵNjÇπÇÒÅvÇΔãLç⁄Ç≥ÇÍǃǢNjÇ∑Ç™ÅADZÇÍÇÕê≥ǵÇ≠džÇËÇ‹ÇπÇÒÅB

ResolveAlias ÇÕ MatchAlias ÇåƒÇ—èoǵǃÉGÉCÉäÉAÉXÇâåàǵÅAMatchAlias Ç™ true Ç…ê›íËÇ≥ÇÍÇΩ needsUpdate Çï‘Ç∑èÍçáÇÕÅAUpdateAlias (ÉtÉãÉGÉCÉäÉAÉXÇçÏê¨Ç∑ÇÈ) ÇåƒÇ—èoǵǃÉGÉCÉäÉAÉXÇçXêVǵÅAtrue Ç…ê›íËÇ≥ÇÍÇΩ wasChanged Çï‘ǵNjÇ∑ÅBÉ~ÉjÉ}ÉãÉGÉCÉäÉAÉXÇǪÇÃNjNjDžǵǃǮÇ≠ïKóvǙdžÇÈèÍçáÇÕÅAMatchAlias (ÉGÉCÉäÉAÉXÇçXêVǵǻǢ) ÇåƒÇ—èoÇ∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÇ‹ÇΩÇÕÅAHandToHand ÇégǡǃÉGÉCÉäÉAÉXÉåÉRÅ[ÉhÇÃÉRÉsÅ[ÇçÏê¨ÇµÅAÉGÉCÉäÉAÉXÉåÉRÅ[ÉhÇÃÉRÉsÅ[Ç ResolveAlias Ç…ìnǵÇΩå„ÅA(ǮǪÇÁÇ≠ÇÕçXêVÇ≥ÇÍǃǢÇÈ) ÉGÉCÉäÉAÉXÉåÉRÅ[ÉhÇÃÉRÉsÅ[Çîjä¸Ç∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

usrCanceledErr ÇÕ userCanceledErr Ç≈Ç»ÇØÇÍnjǻÇÁǻǢ

4-20 ÉyÅ[ÉWÅAResolveAlias 4-23, MatchAlias

íPèÉÇ»åÎêAÇ≈Ç∑ÅB

kARMSearchMore ÇΔÅAAliasFilterProc Ç≈égópâ¬î\Ç»ÉÅÉÇÉäÇÃåxçê

4-23 ÉyÅ[ÉWÅAMatchAlias
4-25 ÉyÅ[ÉWÅAMyMatchAliasFilter

éüÇÃåxçêÇí«â¡ÇµÇƒÇ≠ÇæÇ≥Ç¢ÅB

åxçêÅF
kARMSearchMore ãKë•ÇégÇ¡ÇΩ MatchAlias ÇÃåƒÇ—èoǵÇÕÅAåüçıÇ≥ÇÍÇÈÉ{ÉäÉÖÅ[ÉÄÇ™ PBCatSearch ÇÉTÉ|Å[ÉgǵǃǢǻǢÇΔÅAåãâ ìIÇ… PBGetCatInfo ÇégǡǃçƒãAìIÇ»åüçıÇçsǧDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅBDZÇÃÇΩÇflÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕÅAkARMSearchMore ãKë•ÇégÇ¡ÇΩ MatchAlias ÇåƒÇ—èoÇ∑ëOÇ…ÅAégópâ¬î\Ç»è\ï™Ç»ó ÇÃÉXÉ^ÉbÉNóÃàÊÇ™ë∂ç›Ç∑ÇÈDZÇΔÇämîFǵǃÇ≠ÇæÇ≥Ç¢ÅBÇ‹ÇΩÅAAliasFilterProc Ç™égópÇ≥ÇÍǃǢÇÈèÍçáÇÕÅAAliasFilterProc Ç™ëÂó ÇÃÉXÉ^ÉbÉNóÃàÊÇégópǵǻǢÇÊǧDžíçà”ǵǃÇ≠ÇæÇ≥Ç¢ÅBAliasFilterProc Ç™ yourDataPtr ÉpÉâÉÅÅ[É^Ç≈ïKóvÇΔÇ∑ÇÈâ¬î\ê´ÇÃdžÇÈÉTÉCÉYÇÃëÂÇ´Ç»ÉfÅ[É^ç\ë¢ëÃÇä‹Çfiç\ë¢Ç MatchAlias Ç…ìnÇ∑DZÇΔÇ≈ÅAAliasFilterProc Ç…ÇÊÇÈëÂó ÇÃÉXÉ^ÉbÉNè¡îÔÇó}ǶÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB

êÊì™ÉyÅ[ÉWÇ…ñflÇÈ


ëÊ 5 èÕ - Disk Initialization Manager

ägí£ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉW

ägí£ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇÕÅASystem É\ÉtÉgÉEÉFÉA 7.5 Ç‹ÇΩÇÕǪÇÍà»ç~ÅAMacintosh PC Exchange 2.0 Ç‹ÇΩÇÕǪÇÍà»ç~ÅAÇ®ÇÊÇ— File System Manager ÇΔÇΔLJDžégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBägí£ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇ…ÇÕÅAÅwInside Macintosh: FilesÅxÇÃëÊ 5 èÕÇ≈ê‡ñæÇ≥ÇÍǃǢǻǢ 3 ǬÇÃä÷êîÇ™ä‹Ç‹ÇÍÇ‹Ç∑ÅB

ÅwInside Macintosh: FilesÅxÇ≈ê‡ñæÇ≥ÇÍǃǢÇÈÇÊǧDžÅAÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇ÷ÇÃä˘ë∂ÇÃÉAÉvÉäÉPÅ[ÉVÉáÉìÉvÉçÉOÉâÉÄÉCÉìÉ^ÉtÉFÅ[ÉXÇÕÅAägí£ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇ≈LJà¯Ç´ë±Ç´ÉTÉ|Å[ÉgÇ≥ÇÍǃǢNjÇ∑ÅBMacintosh ÉfÉBÉXÉNÇÃÇ›Çèâä˙âªÇµÇÊǧÇΔÇ∑ÇÈÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕç°å„LJDZÇÍÇ‹Ç≈ìØólÇ…ìÆçÏÇ∑ÇÈÇΩÇflÅAâΩÇÁÇ©ÇÃïœçXÇâ¡Ç¶ÇÈïKóvÇÕdžÇËÇ‹ÇπÇÒÅBǵǩǵÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™îÒ Macintosh ÉfÉBÉXÉNÇèâä˙âªÇ∑ÇÈèÍçáÇÕÅAêVǵÇ≠ägí£Ç≥ÇÍÇΩ DIXFormat Ç®ÇÊÇ— DIXZero åƒÇ—èoǵÇégópÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

ägí£ÉfÉBÉXÉNèâä˙âªÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉX

Finder ÇΔïWèÄÉtÉ@ÉCÉãÉpÉbÉPÅ[ÉWÇÃóºï˚ÇÕÅAÉÜÅ[ÉUÇ…ÉfÉBÉXÉNÇÃÉCÉWÉFÉNÉgÇΔèâä˙âªÇÃÇ«ÇøÇÁÇçsǧǩÇämîFÇ∑ÇÈÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇï\é¶Ç∑ÇÈDZÇΔÇ≈ÅAèâä˙âªÇ≥ÇÍǃǢǻǢÉfÉBÉXÉNÇ…ëŒÇ∑ÇÈÉfÉBÉXÉNë}ì¸ÉCÉxÉìÉgÇèàóùǵNjÇ∑ÅBÉÜÅ[ÉUÇ™ñ≥å¯Ç»ÉfÉBÉXÉNÇë}ì¸ÇµÇΩÇΔÇ´Ç…ÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈LJDZÇÃÇÊǧǻÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇï\é¶Ç∑ÇÈ Disk Initialization Manager ÉãÅ[É`ÉìÇä»íPÇ…åƒÇ—èoÇ∑DZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBê} 5-1 Ç…ÅADZÇÃÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇÃãÔëÃó·Çé¶ÇµÇ‹Ç∑ÅB

ê} 5-1 ÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉX



ÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇégópÇ∑ÇÈÇΔÅAÉÜÅ[ÉUÇÕêVǵǢÉfÉBÉXÉNÇÃñºëOÇΔÉtÉHÅ[É}ÉbÉgÇéwíËÇ≈Ç´Ç‹Ç∑ÅBÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇÃÉAÉsÉAÉâÉìÉXÇÕèåèÇÃïœçXÇîΩâfǵǃïœâªÇµÇ‹Ç∑ÅBÇΩÇΔǶnjÅAÉfÉBÉXÉNÇ™ä‹Ç‹ÇÍǃǢÇÈÉhÉâÉCÉuÇé¶Ç∑ÇΩÇflÉAÉCÉRÉìÇ™ïœâªÇµÇ‹Ç∑ÅBÅuÉtÉHÅ[É}ÉbÉgÅvÉÅÉjÉÖÅ[ÇÃçÄñ⁄ÇÕÅAåªç›ÇÃÉfÉBÉXÉNÇΔÉfÉBÉXÉNÉhÉâÉCÉuÇÃëgÇ›çáÇÌÇπÇ≈égópÇ≈Ç´ÇÈÉfÉBÉXÉNÉtÉHÅ[É}ÉbÉgÇé¶Ç∑ÇΩÇflÇ…ïœâªÇµÇ‹Ç∑ÅBÇ‹ÇΩÅAÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇ…ï\é¶Ç≥ÇÍÇÈÉeÉLÉXÉgÇÕÉfÉBÉXÉNÇ…î≠ê∂ǵÇΩñ‚ëËDžǵÇΩǙǡǃïœâªÇµÇ‹Ç∑ÅBåªç›ÇÃÉfÉBÉXÉNÉhÉâÉCÉuÇ≈ÇÕë}ì¸Ç≥ÇÍÇΩÉfÉBÉXÉNÇÃÉtÉHÅ[É}ÉbÉgÇégópÇ≈ǴǻǢ (ÇΩÇΔǶnjÅAï–ñ ÉhÉâÉCÉuÇ…óºñ ÉfÉBÉXÉNÇë}ì¸ÇµÇΩèÍçáÇ‚ÅAMFM Ç≈ÇÕÇ»Ç≠ GCR ÇégǡǃÉtÉHÅ[É}ÉbÉgǵÇΩçÇñßìxÉfÉBÉXÉNÇ Apple SuperDrive Ç…ë}ì¸ÇµÇΩèÍçáǻǫ) ÇΔǢǧDZÇΔÇ Disk Initialization Manager Ç™åüèoÇ∑ÇÈÇΔÅAÅuDZÇÃÉfÉBÉXÉNÇÃÉtÉHÅ[É}ÉbÉgÇÕDZÇÃÉhÉâÉCÉuÇ≈ÇÕì«Ç›éÊÇÍÇ‹ÇπÇÒÅvÇΔǢǡÇΩì‡óeÇÃÉeÉLÉXÉgÇ™ï\é¶Ç≥ÇÍÇ‹Ç∑ÅB

ç≈èâÇ…ï\é¶Ç≥ÇÍÇΩÇΔÇ´ÇÃÉAÉsÉAÉâÉìÉXÇ…ä÷åWÇ»Ç≠ÅAÉÜÅ[ÉUÇ™ÅuÉCÉWÉFÉNÉgÅvÇ‹ÇΩÇÕÅuÉLÉÉÉìÉZÉãÅvÉ{É^ÉìÇÉNÉäÉbÉNÇ∑ÇÈÇΔÅAÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇÕâÊñ Ç™è¡Ç¶Ç‹Ç∑ÅBǵǩǵÅAÉÜÅ[ÉUÇ™ÉfÉBÉXÉNÇÃèâä˙âªÇëIëÇ∑ÇÈÇΔÅAê}5-2Ç…é¶Ç∑ÇÊǧDžÅAÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇÃÉeÉLÉXÉgÇ™ïœÇÌÇËÅAèâä˙âªÇ…ÇÊǡǃÉfÉBÉXÉNè„ÇÃä˘ë∂ÇÃÉfÅ[É^Ç™Ç∑Ç◊ǃè¡ãéÇ≥ÇÍÇÈDZÇΔÇÉÜÅ[ÉUÇ…åxçêǵNjÇ∑ÅB

ê} 5-2 ÉfÉBÉXÉNèâä˙âªÇÃåxçê



ÉÜÅ[ÉUÇ™åpë±ÇëIëÇ∑ÇÈÇΔÅADisk Initialization Manager ÇÕÉfÉBÉXÉNÇÃèâä˙âªÇééǛNjÇ∑ÅBâΩÇÁÇ©ÇÃÉGÉâÅ[Ç™î≠ê∂ǵǃèâä˙âªÇ…é∏îsÇ∑ÇÈÇΔÅAǪÇÃDZÇΔÇÉÜÅ[ÉUÇ…í ímÇ∑ÇÈÉAÉâÅ[ÉgÉ{ÉbÉNÉXÇ™ï\é¶Ç≥ÇÍÅAÉfÉBÉXÉNÇ™é©ìÆìIÇ…ÉCÉWÉFÉNÉgÇ≥ÇÍÇ‹Ç∑ÅB

ägí£ Disk Initialization Manager ÇÕÅAïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégǡǃÅAÇ∑Ç≈Ç…ÉtÉHÅ[É}ÉbÉgÇ≥ÇÍǃǢÇÈÉfÉBÉXÉNÇçƒèâä˙⪠(çƒÉtÉHÅ[É}ÉbÉg) Ç∑ÇÈÇΩÇflÇÃÉÅÉJÉjÉYÉÄLJíÒãüǵNjÇ∑ (DZÇÃÉÅÉJÉjÉYÉÄÇÕÉfÉBÉXÉNÇàŸÇ»ÇÈÉfÉBÉXÉNÉtÉHÅ[É}ÉbÉgÇégǡǃçƒèâä˙âªÇ∑ÇÈïKóvǙdžÇÈÇΔǴǻǫDžñóßÇøÇ‹Ç∑)ÅBê} 5-3 Ç…é¶Ç∑ÇÊǧDžÅAFinder ÇÕÅuÉfÉBÉXÉNÇÃèâä˙âªÅvÉRÉ}ÉìÉhÇégǡǃÅADZÇÃÉÅÉJÉjÉYÉÄÇóòópǵNjÇ∑ÅBDZÇÃÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇ≈ÉÜÅ[ÉUÇ™è¡ãéëÄçÏÇëIëÇ∑ÇÈÇΔÅAåxçêÇï\é¶Ç∑ÇÈDZÇΔÇ»Ç≠ÅAë¶ç¿Ç…çƒèâä˙âªÇ™äJénÇ≥ÇÍÇ‹Ç∑ÅBïKóvÇ»èÍçáÇÕÅAÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈LJDZÇÍÇΔìØÇ∂ïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégǡǃÅAÉÜÅ[ÉUÇ…É}ÉEÉìÉgÇ≥ÇÍǃǢÇÈÉfÉBÉXÉN (ÉXÉ^Å[ÉgÉAÉbÉvÉ{ÉäÉÖÅ[ÉÄà»äOÇÃ) Ççƒèâä˙âªÇ≥ÇπÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÇ‹ÇΩÅAÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇ…ï\é¶Ç≥ÇÍÇÈÉeÉLÉXÉgÇÉJÉXÉ^É}ÉCÉYÇ∑ÇÈDZÇΔLJÇ≈Ç´Ç‹Ç∑ÅBǻǮÅAé¿ç€Ç…ÉÜÅ[ÉUDžDZÇÃã@î\ÇíÒãüÇ∑ÇÈïKóvǙdžÇÈÇÃÇÕÅAÇ≤Ç≠àÍïîÇÃÉÜÅ[ÉeÉBÉäÉeÉBÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÇ›Ç≈Ç∑ÅB

ê} 5-3 çƒÉtÉHÅ[É}ÉbÉgÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉX



ÉfÉBÉXÉNÉRÉsÅ[ÉAÉvÉäÉPÅ[ÉVÉáÉìÇÃÇÊǧǻÉÜÅ[ÉeÉBÉäÉeÉBÉvÉçÉOÉâÉÄÇäJî≠ǵǃǢÇÈèÍçáÇÕÅAïWèÄÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇï\é¶Ç∑ÇÈDZÇΔÇ»Ç≠ÅAêVǵǢÉfÉBÉXÉNÇÃèâä˙âªÇ‚ä˘ë∂ÇÃóLå¯Ç»ÉfÉBÉXÉNÇÃçƒèâä˙âªÇçsÇÌÇ»ÇØÇÍnjǻÇÁǻǢDZÇΔLJdžÇËÇ‹Ç∑ÅBÇΩÇΔǶnjÅAÉÜÅ[ÉUǙǪÇÃìsìxÅAïWèÄÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇ…âûìöÇ∑ÇÈÇÃÇ≈ÇÕÇ»Ç≠ÅAàÍìxÇ…ï°êîÇÃÉfÉBÉXÉNÇèâä˙âªÇ∑ÇÈÇÊǧǻèÍçáÇ≈Ç∑ÅBDisk Initialization Manager ÇÕÅADZÇÃÇÊǧǻèàóùÇâ¬î\Ç…Ç∑ÇÈÉçÅ[ÉåÉxÉãÇÃÉãÅ[É`ÉìÇíÒãüǵNjÇ∑ÅBDZÇÃéÌÇÃÉÜÅ[ÉeÉBÉäÉeÉBÉvÉçÉOÉâÉÄÇäJî≠Ç∑ÇÈÇÃÇ≈Ç»ÇØÇÍÇŒÅADZÇÍÇÁÇÃÉãÅ[É`ÉìÇégópÇ∑ÇÈïKóvÇÕdžÇËÇ‹ÇπÇÒÅB

ägí£ÉçÅ[ÉåÉxÉãÉfÉBÉXÉNèâä˙âªÉãÅ[É`Éì

ÉÅÉfÉBÉAÉtÉHÅ[É}ÉbÉgÇ®ÇÊÇ—É{ÉäÉÖÅ[ÉÄèâä˙âªä÷êîÇ÷ÇÃägí£ÉvÉçÉOÉâÉÄÉCÉìÉ^ÉtÉFÅ[ÉXÇ≈ÇÕÅAëOèqÇÃÇÊǧǻÉAÉvÉäÉPÅ[ÉVÉáÉìÇ™ÉtÉHÅ[É}ÉbÉgëÄçÏëSëÃÇ…ëŒÇ∑ÇÈí«â¡èÓïÒÇéwíËÇ∑ÇÈDZÇΔÇóvãÅǵNjÇ∑ÅBDZÇÃèÓïÒÇÕÅAÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇÃÅuÉtÉHÅ[É}ÉbÉgÅvÉÅÉjÉÖÅ[Ç…ï\é¶Ç≥ÇÍÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃÉ^ÉCÉvÇΔÉfÉBÉXÉNÉTÉCÉYÇÃèÓïÒÇ…ëŒâûǵNjÇ∑ÅBägí£ÉvÉçÉOÉâÉÄÉCÉìÉ^ÉtÉFÅ[ÉXÇÕÅADIXFormatÅADIXZero (DIFormat ÇΔ DIZero ÇÃägí£ÉoÅ[ÉWÉáÉì)ÅAÇ®ÇÊÇ— DIReformat ÇΔǢǧ3ǬÇÃêVǵǢä÷êîÇÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇ…í«â¡ÇµÇ‹Ç∑ÅB

åxçêÅF
ÉAÉvÉäÉPÅ[ÉVÉáÉìÇ≈ÇÕÅADIXFormatÅADIXZeroÅAÇ‹ÇΩÇÕ DIReformat ÇåƒÇ—èoÇ∑ëOÇ…ÅAÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWä÷êîÇ™ë∂ç›Ç∑ÇÈDZÇΔÇämîFǵǃÇ≠ÇæÇ≥Ç¢ÅBDZÇÍÇçsǧDžÇÕÅAgestaltFSAttr ÉZÉåÉNÉ^ÇégÇ¡ÇΩ Gestalt ÇåƒÇ—èoǵNjÇ∑ÅBGestalt ä÷êîÇ™ñflÇËílÇΔǵǃ noErr Çï‘ǵÅAâûìöÉpÉâÉÅÅ[É^Ç≈ gestaltHasExtendedDiskInitbit (ÉrÉbÉg 6) Ç™ÉZÉbÉgÇ≥ÇÍǃǢÇÍÇŒÅAägí£ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWä÷êîÇégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇÃà»ëOÇÃÉoÅ[ÉWÉáÉìÇÃédólÇ…ÇÊÇËÅAägí£ÉäÉNÉGÉXÉgÇ™égópÇ≈ǴǻǢÇΔǴDžǪÇÍÇñ≥óùÇ…åƒÇ—èoǪǧÇΔÇ∑ÇÈÇΔÅAÉVÉXÉeÉÄÉNÉâÉbÉVÉÖÇÃå¥àˆÇ…Ç»ÇËÇ‹Ç∑ÅB

éüÇÃÉRÅ[ÉhÇÕÅAägí£ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWä÷êîÇ™égópâ¬î\Ç≈džÇÈǩǫǧǩÇîªíËÇ∑ÇÈ Gestalt ä÷êîÇÃégÇ¢ï˚ÇãÔëÃìIÇ…é¶ÇµÇƒÇ¢Ç‹Ç∑ÅB


 Boolean  HasExtendedDIFunctions(void)
 {
    long response;

    if (Gestalt(gestaltFSAttr, &response) == noErr)
       return ((response & (1L << gestaltHasExtendedDiskInit)) != 0);
    else
       return (false);
 }

DIXFormat

DIXFormat ä÷êîÇÕ DIFormat ä÷êîÇΔìØÇ∂ã@î\Çé¿çsǵNjÇ∑Ç™ÅAÉhÉâÉCÉuÉTÉCÉYÇéwíËÇ∑ÇÈì_Ç™àŸÇ»ÇËÇ‹Ç∑ÅB

pascal OSErr DIXFormat(short drvNum, Boolean fmtFlag,
                       unsigned long fmtArg, unsigned long *actSize);

drvNumÉtÉHÅ[É}ÉbÉgÇ∑ÇÈÉhÉâÉCÉuÇÃÉhÉâÉCÉoî‘çÜÇä‹Ç›Ç‹Ç∑ÅB
fmtFlagfmtArg ÉpÉâÉÅÅ[É^ÇÃà”ñ°ÇéwíËÇ∑ÇÈò_óùílÇä‹Ç›Ç‹Ç∑ÅB
fmtArgfmtFlag Ç™ true ÇÃèÍçáÅAfmtArg ÇÕÅAÉfÉBÉXÉNÉÅÉfÉBÉAÇèâä˙âªÇ∑ÇÈÇΩÇflÇ… "ÉtÉHÅ[É}ÉbÉg" _Control åƒÇ—èoǵǙçsÇÌÇÍÇÈÇΔÇ´Ç…ÅAÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇà csParam ÉtÉBÅ[ÉãÉhÇΔǵǃÉfÉBÉXÉNÉhÉâÉCÉoÇ…ìnÇ≥ÇÍÇÈé¿ç€ÇÃílÇéwíËǵNjÇ∑ (DZÇÃílÇÕÉTÉCÉYÉäÉXÉgì‡ÇÃÉCÉìÉfÉbÉNÉXÇ≈Ç∑ÅBDZÇÃÉpÉâÉÅÅ[É^Ç…ê›íËÇ≈Ç´ÇÈìKêÿÇ»ílÇÃê‡ñæÇ…ǬǢǃÇÕÅAÉeÉNÉjÉJÉãÉmÅ[ÉgÇÃÅuWhat Your Sony Drives For YouÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅB

fmtFlag Ç™ false ÇÃèÍçáÅAfmtArg ÇÕ 512 ÉoÉCÉgÉuÉçÉbÉNÇÃêîÇΔǵǃñ]NjǵǢÉÅÉfÉBÉAÇÃÉTÉCÉYÇéwíËǵNjÇ∑ÅBóvãÅǵÇΩÉTÉCÉYÇ…àÍívÇ∑ÇÈÉTÉCÉYÇΔílÇéÊìæÇ∑ÇÈÇΩÇflÇ…ÉfÉBÉXÉNÉhÉâÉCÉoÇ™åƒÇ—èoÇ≥ÇÍÇ‹Ç∑ÅBìØÇ∂ÉTÉCÉYÇ…ëŒÇµÇƒï°êîÇÃÉTÉCÉYÉäÉXÉgÉGÉìÉgÉäÇ™ë∂ç›Ç∑ÇÈèÍçáÅAfmtArg ÉpÉâÉÅÅ[É^Ç…ç≈LJÇÊÇ≠àÍívÇ∑ÇÈÉhÉâÉCÉoÇ…ÇÊǡǃï‘Ç≥ÇÍÇΩÉäÉXÉgì‡ÇÃêÊì™ÇÃÉGÉìÉgÉäÇ™égópÇ≥ÇÍÇ‹Ç∑ÅBÉTÉCÉYÉäÉXÉgÇÃè⁄ç◊DžǬǢǃÇÕÅAÉeÉNÉjÉJÉãÉmÅ[ÉgÇÃÅuWhat Your Sony Drives For YouÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢ÅBéwíËǵÇΩÉTÉCÉYÇ™ÉhÉâÉCÉoÇ©ÇÁï‘Ç≥ÇÍÇΩÉTÉCÉYÉäÉXÉgÇÃç≈ëÂÉTÉCÉYÇÊÇËLJëÂÇ´Ç¢èÍçáÇÕÅAǪÇÃç≈ëÂÉTÉCÉYÇ™égópÇ≥ÇÍÅAǪÇÃÉTÉCÉYÇ™ actSize Ç…ï‘Ç≥ÇÍÇ‹Ç∑ÅBéwíËǵÇΩÉTÉCÉYÇ™ÉhÉâÉCÉoÇ©ÇÁï‘Ç≥ÇÍÇΩÉTÉCÉYÉäÉXÉgÇÃç≈è¨ÉTÉCÉYÇÊÇËLJè¨Ç≥Ç¢èÍçáÇÕÅAǪÇÃç≈è¨ÉTÉCÉYÇ™égópÇ≥ÇÍÅAǪÇÃÉTÉCÉYÇÕ actSize Ç…ï‘Ç≥ÇÍÇ‹Ç∑ÅBéwíËǵÇΩÉTÉCÉYÇ™ç≈ëÂÉTÉCÉYÇΔç≈è¨ÉTÉCÉYÇÃä‘DždžÇËÅAǵǩLJäÆëSÇ…àÍívÇ∑ÇÈÉTÉCÉYǙǻǢèÍçáÇÕÅAóvãÅǵÇΩÉTÉCÉYÇí¥Ç¶Ç»Ç¢ç≈LJãflÇ¢ílÇ™égópÇ≥ÇÍÇ‹Ç∑ÅB
actSizeïÑçÜǻǵ long êÆêîÇ÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅBê≥èÌÇ»ÉtÉHÅ[É}ÉbÉgëÄçÏÇ™äÆóπǵÇΩéûì_Ç≈ÅADIXFormat ÇÕÉtÉHÅ[É}ÉbÉgÇ≥ÇÍÇΩÉÅÉfÉBÉAÇÃé¿ç€ÇÃÉTÉCÉYÇ 512 ÉoÉCÉgÉuÉçÉbÉNÇÃêîÇΔǵǃÅADZÇÃÉpÉâÉÅÅ[É^Ç…ÇÊǡǃéQèΔÇ≥ÇÍÇÈÉtÉBÅ[ÉãÉhÇ…äiî[ǵNjÇ∑ÅB

ì¡éÍÇ»ÉÅÉfÉBÉAÉtÉHÅ[É}ÉbÉgÇïKóvÇΔÇ∑ÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃÉtÉHÅ[É}ÉbÉgÇçsǧDžÇÕÅAÉfÉBÉXÉNÉTÉCÉYÇÃÉJÉEÉìÉgÇæÇØÇ≈Ç»Ç≠ÅAǪÇÍÇÁÇÃÉÅÉfÉBÉAÉtÉHÅ[É}ÉbÉgÇñæé¶ìIÇ…éwíËÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBì¡éÍÇ»ÉÅÉfÉBÉAóvåèÇä‹ÇfiäOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈ÇÕÅAÉTÉCÉYÉäÉXÉgÇ…ä‹Ç‹ÇÍÇÈÉhÉâÉCÉoå≈óLÇÃèÓïÒÇégópÇ∑ÇÈÇ©ÅA"ÉTÉCÉYÉäÉXÉgÇï]âøÇ∑ÇÈ" ÇΩÇflÇ…åƒÇ—èoǵÇçsǧÇΔÇ´Ç…ÅAí«â¡èÓïÒÇ…ëŒÇ∑ÇÈìKêÿÇ»ÉhÉâÉCÉo _Status åƒÇ—èoǵÇçsǧïKóvǙdžÇËÇ‹Ç∑ÅB

DIFormat ÇΔìØólÅADIXFormat ÇÕÉ{ÉäÉÖÅ[ÉÄÇÉAÉìÉ}ÉEÉìÉgǵNjÇπÇÒÅBDZÇÃåƒÇ—èoǵÇé¿çsÇ∑ÇÈëOÇ…ÅAÉ{ÉäÉÖÅ[ÉÄÇÉAÉìÉ}ÉEÉìÉgǵǃǮÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅBÉ{ÉäÉÖÅ[ÉÄÇ™ÉAÉìÉ}ÉEÉìÉgÇ≥ÇÍǃǢǻǢÇΔÅADIXFormat ÇÕ volOnLinErr ÉGÉâÅ[Çï‘ǵNjÇ∑ÅB

åãâ ÉRÅ[Éh

noErr0ê≥èÌèIóπÅB
volOnLinErr-55É{ÉäÉÖÅ[ÉÄÇ™ÉIÉìÉâÉCÉìDžǻǡǃǢNjÇ∑ÅB
lastDskErr...firstDskErr-64...-84ÉçÅ[ÉåÉxÉãÉfÉBÉXÉNÉGÉâÅ[ÇÃîÕàÕÅB

DIXZero

DIXZero ä÷êîÇÕ DIZero ä÷êîÇΔìØÇ∂ã@î\Çé¿çsǵNjÇ∑Ç™ÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÅAÉtÉHÅ[É}ÉbÉgÇÃåãâ ÅAÉ{ÉäÉÖÅ[ÉÄÉ^ÉCÉvÅAÉ{ÉäÉÖÅ[ÉÄÉTÉCÉYÅAÇ®ÇÊÇ—ägí£ÉtÉHÅ[É}ÉbÉgèÓïÒÇéwíËÇ∑ÇÈì_Ç™àŸÇ»ÇËÇ‹Ç∑ÅB


pascal OSErr DIXZero(short drvNum, ConstStr255Param volName,
                     short fsid, short mediaStatus,
                     short volTypeSelector, unsigned long volSize,
                     void *extendedInfoPtr);

drvNumèâä˙âªÇ∑ÇÈÉhÉâÉCÉuÇÃÉhÉâÉCÉoî‘çÜÇä‹Ç›Ç‹Ç∑ÅB
volNameÉ{ÉäÉÖÅ[ÉÄÇÃñºëOÇéwíËÇ∑ÇÈ Pascal ï∂éöóÒÇ÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅB
fsidÉtÉHÅ[É}ÉbÉgÇ™ÉfÉBÉXÉNÇ…èëÇ´çûÇ‹ÇÍÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇà ID Çä‹Ç›Ç‹Ç∑ÅBÉtÉ@ÉCÉãÉVÉXÉeÉÄ ID ÇÕÅAFile System Manager Çà GetFSInfo ä÷êîÇégǡǃéÊìæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
mediaStatusÉfÉBÉXÉNÉÅÉfÉBÉAÇÃÉXÉeÅ[É^ÉXÇé¶Ç∑ÉtÉâÉOÇä‹Ç›Ç‹Ç∑ÅBǪÇÃílÇÕ DIVerify ä÷êîÇ©ÇÁï‘Ç≥ÇÍÇΩåãâ ÉRÅ[ÉhÇ≈Ç∑ÅBmediaStatus Ç™É[ÉçÇ≈ǻǢÇΔÅAÉfÉBÉXÉNÇ…ÇÕïsó«ÉZÉNÉ^Ç™ä‹Ç‹ÇÍÅAÉXÉyÉAÉäÉìÉOÇÃïKóvǙdžÇËÇ‹Ç∑ÅBéwíËÇ≥ÇÍÇΩÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈ïsó«ÉuÉçÉbÉNÇÃÉXÉyÉAÉäÉìÉOÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢǻǢèÍçáÅAÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇÕä÷êîÇÃé¿çsåãâ ÇΔǵǃíPèÉDžDZÇÃílÇæÇØÇï‘ǵNjÇ∑ÅBÇ‹ÇΩÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈ïsó«ÉuÉçÉbÉNÇÃÉXÉyÉAÉäÉìÉOÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈèÍçáÇÕÅAÉfÉtÉFÉNÉgÉäÉXÉgÇ™é˚èWÇ≥ÇÍÅAǪÇÍÇ™ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…ìnÇ≥ÇÍÇ‹Ç∑ÅB
volTypeSelectoräOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈ï°êîÇÃÉ{ÉäÉÖÅ[ÉÄÉ^ÉCÉvÇ™ÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈèÍçáÇ…égópÇ∑ÇÈÉ{ÉäÉÖÅ[ÉÄÉ^ÉCÉvÉZÉåÉNÉ^Çä‹Ç›Ç‹Ç∑ÅB
volSizedrvNum Ç≈éwíËÇ≥ÇÍÇΩÉhÉâÉCÉuÇà 512 ÉoÉCÉgÉuÉçÉbÉNíPà ÇÃÉTÉCÉYÇä‹Ç›Ç‹Ç∑ÅBDZÇÍÇÕÅADIXFormat Ç…ÇÊǡǃ actSize ÉtÉBÅ[ÉãÉhÇ…ï‘Ç≥ÇÍÇΩÉTÉCÉYÅAǬNjÇËéwíËÇ≥ÇÍÇΩÉhÉâÉCÉuè„ÇÃÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ™égópÇ≈Ç´ÇÈóÃàÊÇÃóeó Ç≈Ç∑ÅBéwíËǵÇΩÉTÉCÉYÇ™åªç›ÇÃÉfÉBÉXÉNÉtÉHÅ[É}ÉbÉgÉTÉCÉYÇΔàÍívǵǻǢèÍçáÅADIXZero ÇÕ diCIVolSizeMismatchErr Çï‘ǵNjÇ∑ÅB
fsParamsäOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃägí£ÉtÉHÅ[É}ÉbÉgèÓïÒÇ÷ÇÃÉ|ÉCÉìÉ^ÅAÇ‹ÇΩÇÕ nil Çä‹Ç›Ç‹Ç∑ÅB

åxçêÅF
DIXZero ÉRÅ[ÉhÇÃèâä˙ÉoÅ[ÉVÉáÉìÇÕÅAmediaStatus ÉpÉâÉÅÅ[É^Ç…ìnÇ≥ÇÍÇΩílÇ™ noErr Ç≈ǻǢÇΔÇ´ÅAnil Çà DialogPtr Çä‹Çfi Dialog Manager ÇåƒÇ—èoǵNjÇ∑ÅBDZÇÍÇ…ÇÊÇËÅAÇΩǢǃǢÇÃèÍçáÇÕÉVÉXÉeÉÄÉNÉâÉbÉVÉÖÇ™î≠ê∂Ç∑ÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

mediaStatus ÉpÉâÉÅÅ[É^ÇΔǵǃ noErr à»äOÇÃílÇìnÇ∑ëOÇ…ÅADIXZero Ç™ïsó«ÉuÉçÉbÉNÇÃÉXÉyÉAÉäÉìÉOÇÉTÉ|Å[ÉgǵǃǢÇÈDZÇΔÇämîFÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBéüÇà DIXZeroSupportsBadBlocks ä÷êîÇÕÅADIXZero Ç™ïsó«ÉuÉçÉbÉNÇÃÉXÉyÉAÉäÉìÉOÇÉTÉ|Å[ÉgǵǃǢÇÈǩǫǧǩÇämîFÇ∑ÇÈï˚ñ@Çé¶ÇµÇƒÇ¢Ç‹Ç∑ÅB


 Boolean  DIXZeroSupportsBadBlocks(void)
 {
    enum
    {
       gestaltBugFixAttrsThree = 'bugx',
       gestaltDIXZeroSupportsBadBlocks = 9
    };
    long response;

    if (Gestalt(gestaltBugFixAttrsThree , &response) == noErr)
       return ((response & (1L << gestaltDIXZeroSupportsBadBlocks))
               != 0);
    else
       return (false);
 }

DIZero ÇΔìØólÅADIXZero ÇÕÉ{ÉäÉÖÅ[ÉÄÇÉAÉìÉ}ÉEÉìÉgǵNjÇπÇÒÇ™ÅAëÄçÏÇ™ê≥èÌÇ…èIóπǵÇΩèÍçáÇ…É{ÉäÉÖÅ[ÉÄÇÉ}ÉEÉìÉgǵNjÇ∑ÅBDZÇÃåƒÇ—èoǵÇé¿çsÇ∑ÇÈëOÇ…ÅAÉ{ÉäÉÖÅ[ÉÄÇÉAÉìÉ}ÉEÉìÉgǵǃǮÇ≠ïKóvǙdžÇËÇ‹Ç∑ÅBDIZero Ç‹ÇΩÇÕ DIXZero ÇåƒÇ—èoǵÇΩÇΔÇ´Ç…É{ÉäÉÖÅ[ÉÄÇ™É}ÉEÉìÉgÇ≥ÇÍǃǢÇÈÇΔÅAvolOnLinErr ÉGÉâÅ[Ç™ï‘Ç≥ÇÍÇ‹Ç∑ÅB

åãâ ÉRÅ[Éh

noErr0ê≥èÌèIóπÅB
diCIVolSizeMismatchErr24éwíËǵÇΩÉ{ÉäÉÖÅ[ÉÄÉTÉCÉYÇÕÉtÉHÅ[É}ÉbÉgÇ≥ÇÍǃǢÇÈÉfÉBÉXÉNÉTÉCÉYÇΔàÍívǵNjÇπÇÒÅB
ioErr-36I/OÉGÉâÅ[ÅB
paramErr-50éwíËǵÇΩÉhÉâÉCÉuî‘çÜÇ™ïsê≥Ç≈Ç∑ÅB
volOnLinErr-55É{ÉäÉÖÅ[ÉÄÇÕÇ∑Ç≈Ç…ÉIÉìÉâÉCÉìDžǻǡǃǢNjÇ∑ÅB
nsDrvErr-56ǪÇÃÇÊǧǻÉhÉâÉCÉuÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB
firstDskErr...lastDskErr-84...-64ÉçÅ[ÉåÉxÉãÉfÉBÉXÉNÉGÉâÅ[ÇÃîÕàÕÅB
memFullErr-108ÉÅÉÇÉäïsë´ÅB

DIReformat

DIReformat ä÷êîÇÕÉfÉBÉXÉNÉ{ÉäÉÖÅ[ÉÄÇçƒÉtÉHÅ[É}ÉbÉgǵNjÇ∑ÅB


pascal OSErr DIReformat(short drvNum, short fsid,
                        ConstStr255Param volName,
                        ConstStr255Param msgText);

drvNumÉtÉHÅ[É}ÉbÉgÇ∑ÇÈÉhÉâÉCÉuÇÃÉhÉâÉCÉoî‘çÜÇä‹Ç›Ç‹Ç∑ÅB
fsidÉtÉHÅ[É}ÉbÉgÇ™ÉfÉBÉXÉNÇ…èëÇ´çûÇ‹ÇÍÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇà ID Çä‹Ç›Ç‹Ç∑ÅBÉtÉ@ÉCÉãÉVÉXÉeÉÄ ID ÇÕÅAFile System Manager Çà GetFSInfo ä÷êîÇégǡǃéÊìæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ (Macintosh HFS É{ÉäÉÖÅ[ÉÄÉtÉHÅ[É}ÉbÉgÇÃèÍçáÇÕ $0000 ÇégópǵNjÇ∑)ÅB
volNameÉ{ÉäÉÖÅ[ÉÄÇÃñºëOÇéwíËÇ∑ÇÈ Pascal ï∂éöóÒÇ÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅB
msgTextÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇ…ï\é¶Ç≥ÇÍÇÈê‡ñæÉeÉLÉXÉgÇéwíËÇ∑ÇÈ Pascal ï∂éöóÒÇ÷ÇÃÉ|ÉCÉìÉ^Çä‹Ç›Ç‹Ç∑ÅB

DZÇÍÇ‹Ç≈ÉfÉBÉXÉNÇÃçƒÉtÉHÅ[É}ÉbÉgÇÕÅAevtMessage ÉpÉâÉÅÅ[É^ÇÃè„à ÉèÅ[ÉhÇ… noErr Çê›íËǵÇΩ DIBadMount ä÷êîÇåƒÇ—èoÇ∑DZÇΔÇ≈é¿åªÇ≥ÇÍÅAê‡ñæÉeÉLÉXÉgÇÕ ParamText ä÷êîÇégǡǃê›íËǵǃǢNjǵÇΩÅBDIReformat ä÷êîÇÕÅAê‡ñæÉeÉLÉXÉgÅAÉfÉtÉHÉãÉgÇÃÉtÉ@ÉCÉãÉVÉXÉeÉÄ IDÅAÇ®ÇÊÇ—çƒÉtÉHÅ[É}ÉbÉgÇ≥ÇÍÇΩÉfÉBÉXÉNÇÃÉfÉtÉHÉãÉgÇÃñºëOÇéwíËÇ∑ÇÈã@î\ÇåƒÇ—èoǵå≥Ç…íÒãüǵNjÇ∑ÅB

íçà”ÅF
drvNum Ç≈éwíËÇ≥ÇÍÇΩÉhÉâÉCÉuì‡ÇÃÉ{ÉäÉÖÅ[ÉÄÇÕÅADIReformat ÇåƒÇ—èoÇ∑ëOÇ…É}ÉEÉìÉgÇ≥ÇÍǃǢÇÈïKóvǙdžÇËÇ‹Ç∑ÅB

åãâ ÉRÅ[Éh

noErr0ê≥èÌèIóπÅB
diCINoMessageTextErr28msgTextÇ™éwíËÇ≥ÇÍǃǢNjÇπÇÒÅB
ioErr-36I/OÉGÉâÅ[ÅB
paramErr-50éwíËǵÇΩÉhÉâÉCÉuî‘çÜÇ™ïsê≥Ç≈Ç∑ÅB
nsDrvErr-56ǪÇÃÇÊǧǻÉhÉâÉCÉuÇÕë∂ç›ÇµÇ‹ÇπÇÒÅB
firstDskErr...lastDskErr-84...-64ÉçÅ[ÉåÉxÉãÉfÉBÉXÉNÉGÉâÅ[ÇÃîÕàÕÅB
memFullErr-108ÉÅÉÇÉäïsë´ÅB

HFS Ç®ÇÊÇ— HFS Plus É{ÉäÉÖÅ[ÉÄÇÃÉtÉHÅ[É}ÉbÉg

ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇÕÅAÉvÉçÉOÉâÉÄÇ™ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…ÇÊǡǃégópÇ≥ÇÍÇÈÉfÉBÉXÉNÉhÉâÉCÉuÇèâä˙âªÇ∑ÇÈÇΩÇflÇÃï˚ñ@ÇíÒãüǵNjÇ∑ÅBÉhÉâÉCÉuÇ™É}ÉEÉìÉgÇ≥ÇÍǃǢÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÉ{ÉäÉÖÅ[ÉÄÇ≈ǻǢèÍçáÅAÉvÉçÉOÉâÉÄÇÕ DIBadMount ÇåƒÇ—èoǵǃÅAÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇ…ÉfÉBÉXÉNèâä˙âªÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇégÇ¡ÇΩÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÇíÒãüÇ≥ÇπÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ (Åuägí£ÉfÉBÉXÉNèâä˙âªÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÅvÇéQèΔǵǃÇ≠ÇæÇ≥Ç¢)ÅBÉhÉâÉCÉuÇ™Ç∑Ç≈Ç…ÉtÉHÅ[É}ÉbÉgÇ≥ÇÍǃǢǃÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…ÇÊǡǃÉ}ÉEÉìÉgÇ≥ÇÍǃǢÇÈèÍçáÅAÉvÉçÉOÉâÉÄÇÕ DIReformat ÇåƒÇ—èoǵǃÅAÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÇ…çƒÉtÉHÅ[É}ÉbÉgÉ_ÉCÉAÉçÉOÉ{ÉbÉNÉXÇÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÇíÒãüÇ≥ÇπÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBÉvÉçÉOÉâÉÄÇ™ÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXǻǵDžÉ{ÉäÉÖÅ[ÉÄÇÃÉfÅ[É^ç\ë¢Çèâä˙âªÇ‹ÇΩÇÕçƒèâä˙âªÇ∑ÇÈïKóvǙdžÇÈèÍçáÇÕÅADIZero Ç‹ÇΩÇÕ DIXZero ÇégópÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBDIZero ÇÕèÌÇ…ÉfÉBÉXÉNÇ HFS É{ÉäÉÖÅ[ÉÄÇΔǵǃÉtÉHÅ[É}ÉbÉgǵNjÇ∑ÅBÉfÉBÉXÉNÇ HFS Plus É{ÉäÉÖÅ[ÉÄÇΔǵǃèâä˙âªÇµÇΩÇ¢èÍçáÅAÇ‹ÇΩÇÕäOïîÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ≈égópÇ∑ÇÈÇΩÇflÇ…ÉfÉBÉXÉNÇèâä˙âªÇµÇΩÇ¢èÍçáÇÕÅADIXZero ÇégópÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBDZÇÃÉZÉNÉVÉáÉìÇ≈ÇÕÅADIXZero ÇégǡǃÅAÉfÉBÉXÉNÇ HFS Ç‹ÇΩÇÕ HFS Plus É{ÉäÉÖÅ[ÉÄÇΔǵǃèâä˙âªÇ∑ÇÈï˚ñ@DžǬǢǃê‡ñæÇµÇ‹Ç∑ÅB

fsid ÉpÉâÉÅÅ[É^ÇÕÅAÉ{ÉäÉÖÅ[ÉÄÇÃèâä˙âªÇ…égópÇ∑ÇÈÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ DIXZero Ç…éwé¶ÇµÇ‹Ç∑ÅBHFS Ç®ÇÊÇ— HFS Plus É{ÉäÉÖÅ[ÉÄÇÃèÍçáÇÕ fsid ÉpÉâÉÅÅ[É^ÇΔǵǃ $0000 ÇìnǵNjÇ∑ (ÉçÅ[ÉJÉãÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃÉtÉ@ÉCÉãÉVÉXÉeÉÄ ID)ÅB

volTypeSelector ÉpÉâÉÅÅ[É^ÇÕÅAíPàÍÇÃÉtÉ@ÉCÉãÉVÉXÉeÉÄÇ…ÇÊǡǃÉTÉ|Å[ÉgÇ≥ÇÍǃǢÇÈï°êîÇÃÉ{ÉäÉÖÅ[ÉÄÉ^ÉCÉvÇÃíÜÇ©ÇÁñ⁄ìIÇÃLJÇÃÇëIëÇ∑ÇÈÇΩÇflÇ…égópǵNjÇ∑ÅBHFS É{ÉäÉÖÅ[ÉÄÇçÏê¨Ç∑ÇÈÇ…ÇÕÅAvolTypeSelector ÉpÉâÉÅÅ[É^ÇΔǵǃ 1 ÇìnǵÅAHFS Plus É{ÉäÉÖÅ[ÉÄÇçÏê¨Ç∑ÇÈÇ…ÇÕÅAvolTypeSelector ÉpÉâÉÅÅ[É^ÇΔǵǃ 2 ÇìnǵNjÇ∑ÅB

extendedInfoPtr ÉpÉâÉÅÅ[É^ÇÕÅAÉ{ÉäÉÖÅ[ÉÄÇÉtÉHÅ[É}ÉbÉgÇ∑ÇÈï˚ñ@Çí≤êÆÇ∑ÇÈè»ó™â¬î\Ç»ç\ë¢ëÃÇ÷ÇÃÉ|ÉCÉìÉ^Ç≈Ç∑ÅBHFS É{ÉäÉÖÅ[ÉÄÇÉtÉHÅ[É}ÉbÉgÇ∑ÇÈÇΔÇ´ÅADZÇÃÉpÉâÉÅÅ[É^ÇÕ HFSDefaults å^ÇÃç\ë¢ëÃÇÉ|ÉCÉìÉgÇ∑ÇÈïKóvǙdžÇËÅAHFS Plus É{ÉäÉÖÅ[ÉÄÇÃèÍçáÇÕ HFSPlusDefaults å^ÇÃç\ë¢ëÃÇÉ|ÉCÉìÉgÇ∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBextendedInfoPtr ÉpÉâÉÅÅ[É^ÇΔǵǃ NIL ÇìnÇ∑ÇΔÅAÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃÉfÉtÉHÉãÉgílÇ™égópÇ≥ÇÍÇÈDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

HFSDefaults


 struct HFSDefaults {
   char   sigWord[2];  /* ÉVÉOÉlÉ`ÉÉÉèÅ[Éh */
   long   abSize;      /* ÉoÉCÉgíPà ÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉY */
   long   clpSize;     /* ÉoÉCÉgíPà ÇÃÉNÉâÉìÉvÉTÉCÉY */
   long   nxFreeFN;    /* éüÇÃãÛÇ´ÉtÉ@ÉCÉãî‘çÜ */
   long   btClpSize;   /* ÉoÉCÉgíPà Çà B ÉcÉäÅ[ÉNÉâÉìÉvÉTÉCÉY */
   short  rsrv1;       /* ó\ñÒçœÇ› */
   short  rsrv2;       /* ó\ñÒçœÇ› */
   short  rsrv3;       /* ó\ñÒçœÇ› */
 };
 typedef struct HFSDefaults HFSDefaults;

HFSDefaults ç\ë¢ëÃÇégópÇ∑ÇÈÇΔÅAHFS É{ÉäÉÖÅ[ÉÄÇÉtÉHÅ[É}ÉbÉgÇ∑ÇÈÇΔÇ´Ç…égópÇ≥ÇÍÇÈÇ¢Ç≠ǬǩÇÃÉpÉâÉÅÅ[É^ÇïœçXÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBǪÇÍǺÇÍÇÃÉtÉBÅ[ÉãÉhÇ…É[ÉçÇ‹ÇΩÇÕñ≥å¯Ç»ílÇê›íËÇ∑ÇÈÇΔÅAÉfÉtÉHÉãÉgílÇÃégópÇéwíËǵÇΩDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

sigWord Ç…ÇÕÉoÉCÉg $4244 ('BD') Çê›íËǵNjÇ∑ÅB

abSize ÉtÉBÅ[ÉãÉhÇÕÉ{ÉäÉÖÅ[ÉÄÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇê›íËǵNjÇ∑ÅBDZÇÃílÇÕ 512 ÉoÉCÉgÇÃî{êîÇ≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇÃÉfÉtÉHÉãÉgílÇΔç≈è¨ílÇÕÅA512 ÇÃî{êîÇÃíÜÇ≈ÅAÉ{ÉäÉÖÅ[ÉÄÉTÉCÉY (ÉoÉCÉgíPà ) Ç 65535 ($FFFF) Ç≈äÑÇ¡ÇΩílà»è„ÇÃç≈è¨ÇÃílÇ≈Ç∑ÅB

clpSize ÉtÉBÅ[ÉãÉhÇÕÉ{ÉäÉÖÅ[ÉÄÇÃÉfÉtÉHÉãÉgÉNÉâÉìÉvÉTÉCÉYÇê›íËǵNjÇ∑ÅBDZÇÃílÇÕÅAÉtÉ@ÉCÉãÇägí£Ç∑ÇÈÇΩÇflÇ…óÃàÊÇäÑÇËìñǃÇÈÇΔÇ´Ç…égópÇ≥ÇÍÇ‹Ç∑ÅBè\ï™Ç»ãÛÇ´óÃàÊÇ™égópâ¬î\Ç»èÍçáÅAäÑÇËìñǃÇÁÇÍÇΩóÃàÊÇÕÉNÉâÉìÉvÉTÉCÉYÇÃî{êîÇ…êÿÇËè„Ç∞ÇÁÇÍÇ‹Ç∑ÅBÉNÉâÉìÉvÉTÉCÉYÇÕÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇÃî{êîÇ≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇ™ 256K Ç‹ÇΩÇÕǪÇÍà»â∫ÇÃèÍçáÇÕÅAÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇà 4 î{Ç™ÉfÉtÉHÉãÉgílÇ…Ç»ÇËÇ‹Ç∑ÅBÇ‹ÇΩÅAÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYǙǪÇÍÇÊÇËLJëÂÇ´Ç¢ÇΔÅAÉfÉtÉHÉãÉgílÇÕÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇ…ìôǵÇ≠Ç»ÇËÇ‹Ç∑ÅB

nxFreeFN ÉtÉBÅ[ÉãÉhÇÕ MDB Çà drNxtCNID ÉtÉBÅ[ÉãÉhÇê›íËǵNjÇ∑ÅBDZÇÍÇÕÅAǪÇÃÉ{ÉäÉÖÅ[ÉÄè„ÇÃÉtÉ@ÉCÉãÇΔÉtÉHÉãÉ_Ç…äÑÇËìñǃÇÁÇÍÇÈÉJÉ^ÉçÉOÉmÅ[Éh ID ÇÃäJénílÇ…ëäìñǵNjÇ∑ÅBDZÇÃílÇÕé¿ç€Ç…ÇÕïÑçÜǻǵ 32 ÉrÉbÉgêÆêîÇ≈Ç∑ÅBÉfÉtÉHÉãÉgílÇΔç≈è¨ílÇÕ fsUsrCNID (16)ÅAǬNjÇËÉÜÅ[ÉUÉtÉ@ÉCÉãÇΔÉtÉHÉãÉ_Ç…ëŒÇ∑ÇÈóLå¯Ç»ç≈è¨ÇÃÉJÉ^ÉçÉOÉmÅ[Éh ID Ç≈Ç∑ÅB

btClpSize ÉtÉBÅ[ÉãÉhÇÕÉNÉâÉìÉvÉTÉCÉYÇΔÅAÉJÉ^ÉçÉOÇ®ÇÊÇ—ÉGÉNÉXÉeÉìÉg B ÉcÉäÅ[Ç…äÑÇËìñǃÇÁÇÍÇÈóÃàÊÇÃèâä˙ílÇÃóºï˚Çê›íËǵNjÇ∑ÅBÉNÉâÉìÉvÉTÉCÉYÇÕÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇÃî{êîÇ≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBÉfÉtÉHÉãÉgílÇÕÉ{ÉäÉÖÅ[ÉÄÉTÉCÉYÇ…ÇÊǡǃïœÇÌÇËÇ‹Ç∑Ç™ÅAí èÌÇÕÉ{ÉäÉÖÅ[ÉÄÉTÉCÉYÇà 1/128 Ç≈Ç∑ÅB

HFSPlusDefaults


 enum {
   kHFSPlusDefaultsVersion = 1
 };

 struct HFSPlusDefaults {
   UInt16  version;             /* DZÇÃç\ë¢ëÃÇÃÉoÅ[ÉWÉáÉì */
   UInt16  flags;               /* åªç›ÇÕñ¢íËã`ÅAÉ[ÉçÇìnÇ∑ */
   UInt32  blockSize;           /* ÉoÉCÉgíPà ÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉY */
   UInt32  rsrcClumpSize;       /* ÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇÃÉNÉâÉìÉvÉTÉCÉY */
   UInt32  dataClumpSize;       /* ÉfÅ[É^ÉtÉHÅ[ÉNÇÃÉNÉâÉìÉvÉTÉCÉY */
   UInt32  nextFreeFileID;      /* éüÇÃãÛÇ´ÉtÉ@ÉCÉãî‘çÜ */
   UInt32  catalogClumpSize;    /* ÉJÉ^ÉçÉO B ÉcÉäÅ[ÇÃÉNÉâÉìÉvÉTÉCÉY */
   UInt32  catalogNodeSize;     /* ÉJÉ^ÉçÉO B ÉcÉäÅ[ÇÃÉmÅ[ÉhÉTÉCÉY */
   UInt32  extentsClumpSize;    /* ÉGÉNÉXÉeÉìÉg B ÉcÉäÅ[ÇÃÉNÉâÉìÉvÉTÉCÉY */
   UInt32  extentsNodeSize;     /* ÉGÉNÉXÉeÉìÉg B ÉcÉäÅ[ÇÃÉmÅ[ÉhÉTÉCÉY */
   UInt32  attributesClumpSize; /* ÉAÉgÉäÉrÉÖÅ[Ég B ÉcÉäÅ[ÇÃÉNÉâÉìÉvÉTÉCÉY */
   UInt32  attributesNodeSize;  /* ÉAÉgÉäÉrÉÖÅ[Ég B ÉcÉäÅ[ÇÃÉmÅ[ÉhÉTÉCÉY */
   UInt32  allocationClumpSize; /* ÉAÉçÉPÅ[ÉVÉáÉìÉrÉbÉgÉ}ÉbÉvÉtÉ@ÉCÉãÇÃÉNÉâÉìÉvÉTÉCÉY */
 };
 typedef struct HFSPlusDefaults HFSPlusDefaults;

HFSPlusDefaults ç\ë¢ëÃÇégópÇ∑ÇÈÇΔÅAHFS Plus É{ÉäÉÖÅ[ÉÄÇÉtÉHÅ[É}ÉbÉgÇ∑ÇÈÇΔÇ´Ç…égópÇ≥ÇÍÇÈÇ¢Ç≠ǬǩÇÃÉpÉâÉÅÅ[É^ÇïœçXÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅBǪÇÍǺÇÍÇÃÉtÉBÅ[ÉãÉhÇ…É[ÉçÇ‹ÇΩÇÕñ≥å¯Ç»ílÇê›íËÇ∑ÇÈÇΔÅAÉfÉtÉHÉãÉgílÇÃégópÇéwíËǵÇΩDZÇΔÇ…Ç»ÇËÇ‹Ç∑ÅB

version ÉtÉBÅ[ÉãÉhÇÕä÷êîÇ…ìnÇ∑ HFSPlusDefaults ç\ë¢ëÃÇÃÉoÅ[ÉWÉáÉìÇéwíËǵNjÇ∑ÅBåªç›ÇÃÉoÅ[ÉWÉáÉìÇÕ kHFSPlusDefaultsVersion Ç≈Ç∑ÅBìnǵÇΩílÇ™åªç›ÇÃÉCÉìÉvÉäÉÅÉìÉeÅ[ÉVÉáÉìÇ…ÇÊǡǃîFéØÇ≥ÇÍÇÈílÇí¥Ç¶ÇƒÇ¢ÇÈÇΔÅAparamErr Ç™ï‘Ç≥ÇÍÇ‹Ç∑ÅBí èÌÅAÉCÉìÉvÉäÉÅÉìÉeÅ[ÉVÉáÉìÇÕ HFSPlusDefaults ÇÃå√Ç¢ÉoÅ[ÉWÉáÉìÇÉTÉ|Å[ÉgǵNjÇ∑ÅB

flags ÉtÉBÅ[ÉãÉhÇÕåªç›ó\ñÒÇ≥ÇÍǃǢNjÇ∑ÅBÉ[Éçà»äOÇÃílÇìnÇ∑ÇΔÅAparamErr Ç™ï‘Ç≥ÇÍÇ‹Ç∑ÅB

blockSize ÉtÉBÅ[ÉãÉhÇÕÉ{ÉäÉÖÅ[ÉÄÇÃÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇê›íËǵNjÇ∑ÅBóLå¯Ç»ílÇÕ 512 à»è„ÇΔÇ»ÇÈ 2 ÇÃÇ◊Ç´èÊílÇ≈Ç∑ÅBÉfÉtÉHÉãÉgílÇÕÉ{ÉäÉÖÅ[ÉÄÇÃÉTÉCÉYÇ…ÇÊǡǃïœÇÌÇËÇ‹Ç∑ÅB256MB Ç‹ÇΩÇÕǪÇÍà»â∫ÇÃÉ{ÉäÉÖÅ[ÉÄÇ≈ÇÕ 512 ÉoÉCÉgÇ…Ç»ÇËÅA1GB Çí¥Ç¶ÇÈÉ{ÉäÉÖÅ[ÉÄÇ≈ÇÕç≈ë 4KB Ç‹Ç≈ÇÃílÇê›íËÇ≈Ç´Ç‹Ç∑ÅBÉ{ÉäÉÖÅ[ÉÄÇÃÉfÉoÉCÉXÇ™ GetMediaInfo êßå‰åƒÇ—èoǵÇÉTÉ|Å[ÉgǵǃǢÇÈèÍçáÅAÉfÉtÉHÉãÉgÇÃÉTÉCÉYÇÕÉfÉoÉCÉXÇÃÉuÉçÉbÉNÉTÉCÉYà»è„ÇÃílÇ…Ç»ÇËÇ‹Ç∑ÅB

íçà”ÅF
HFS Plus ÉtÉ@ÉCÉãÉVÉXÉeÉÄÇÃè´óàÇÃÉoÅ[ÉWÉáÉìÇ≈ÇÕÅAÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÇ™ 4KB ÇÃÇΔÇ´Ç…ÉpÉtÉHÅ[É}ÉìÉXÇ™ç≈ìKâªÇ≥ÇÍÇÈó\íËÇ≈Ç∑ÅBDZÇÃÇΩÇflÅAì¡Ç…óùóRǙǻǢǩǨÇËÉfÉtÉHÉãÉgílÇégópÇ∑ÇÈDZÇΔÇÇ®ä©ÇflǵNjÇ∑ÅB

rsrcClumpSize Ç®ÇÊÇ— dataClumpSize ÉtÉBÅ[ÉãÉhÇÕǪÇÍǺÇÍÅAÉäÉ\Å[ÉXÉtÉHÅ[ÉNÇΔÉfÅ[É^ÉtÉHÅ[ÉNÇÃÉNÉâÉìÉvÉTÉCÉYÇÃÉfÉtÉHÉãÉgílÇê›íËǵNjÇ∑ÅBDZÇÃílÇÕÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇÃî{êîÇ≈Ç»ÇØÇÍnjǻÇËÇ‹ÇπÇÒÅBóºï˚ÇÃÉtÉBÅ[ÉãÉhÇÃÉfÉtÉHÉãÉgílÇÕÉAÉçÉPÅ[ÉVÉáÉìÉuÉçÉbÉNÉTÉCÉYÇà 4 î{Ç≈Ç∑ÅB

nextFreeFileID ÉtÉBÅ[ÉãÉhÇÕêVǵÇ≠çÏê¨Ç≥ÇÍÇΩÉtÉ@ÉCÉãÇΔÉtÉHÉãÉ_Ç…äÑÇËìñǃÇÁÇÍÇÈç≈èâÇÃÉJÉ^ÉçÉOÉmÅ[Éh ID Çê›íËǵNjÇ∑ÅBÉfÉtÉHÉãÉgílÇΔç≈è¨ílÇÕ fsUsrCNID (16)ÅAǬNjÇËÉÜÅ[ÉUÉtÉ@ÉCÉãÇΔÉtÉHÉãÉ_Ç…ëŒÇ∑ÇÈóLå¯Ç»ç≈è¨ÇÃÉJÉ^ÉçÉOÉmÅ[Éh ID Ç≈Ç∑ÅB

catalogClumpSize Ç®ÇÊÇ— extentsClumpSize ÉtÉBÅ[ÉãÉhÇÕǪÇÍǺÇÍÅAÉNÉâÉìÉvÉTÉCÉYÇΔÅAÉJÉ^ÉçÉOÇ®ÇÊÇ—ÉGÉNÉXÉeÉìÉg B ÉcÉäÅ[Ç…ç≈èâÇ…äÑÇËìñǃÇÈóÃàÊÇê›íËǵNjÇ∑ÅBóºï˚ÇÃÉtÉBÅ[ÉãÉhÇÃÉfÉtÉHÉãÉgílÇÕÉ{ÉäÉÖÅ[ÉÄÉTÉCÉYÇ…ÇÊǡǃïœÇÌÇËÇ‹Ç∑Ç™ÅAí èÌÇÕÉ{ÉäÉÖÅ[ÉÄÉTÉCÉYÇà 1/128 Ç≈Ç∑ÅB

catalogNodeSize Ç®ÇÊÇ— extentsNodeSize ÉtÉBÅ[ÉãÉhÇÕǪÇÍǺÇÍÅAÉJÉ^ÉçÉOÇ®ÇÊÇ—ÉGÉNÉXÉeÉìÉg B ÉcÉäÅ[Ç…ëŒÇ∑ÇÈ B ÉcÉäÅ[ÉmÅ[ÉhÇÃÉTÉCÉYÇê›íËǵNjÇ∑ÅBóLå¯Ç»ílÇÕç≈ë 32,768 (32K) Ç‹Ç≈Çà 2 ÇÃÇ◊Ç´èÊílÇ≈Ç∑ÅBcatalogNodeSize ÇÃÉfÉtÉHÉãÉgílÇΔç≈è¨ílÇÕ 4KB Ç≈Ç∑ÅBÇ‹ÇΩÅAextentsNodeSize ÇÃç≈è¨ílÇÕ 512 Ç≈ÅAÉfÉtÉHÉãÉgílÇÕ 1024 Ç≈Ç∑ÅB

Ç¢Ç≠ǬǩÇÃÉTÉìÉvÉãÉRÅ[Éh

éüÇÃÉTÉìÉvÉãÇÕÅADIReformat ÇégǡǃÅAïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégópÇ∑ÇÈÉfÉBÉXÉNÇçƒèâä˙âªÇ∑ÇÈï˚ñ@Çé¶ÇµÇƒÇ¢Ç‹Ç∑ÅBDIReformat Ç™égópâ¬î\Ç≈džÇÈÇΔÇ´ÅADZÇÃÉRÅ[ÉhÇÕÅwInside Macintosh: FilesÅxÇà 5-11 ÉyÅ[ÉWÇÃÉäÉXÉg 5-2 Ç…é¶Ç≥ÇÍǃǢÇÈÉRÅ[ÉhÇÃë„ópÇΔǵǃégópÇ≈Ç´Ç‹Ç∑ÅB


 // ïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégópÇ∑ÇÈóLå¯Ç»ÉfÉBÉXÉNÇçƒèâä˙âª
 OSErr ReformatDisk(short drvNum, ConstStr255Param msgText)
 {
   OSErr  result;
   Str255  volName;
   short  vRefNum;
   long  freeBytes;

   DILoad();
   // åªç›ÇÃÉ{ÉäÉÖÅ[ÉÄñºÇéÊìæ
   result = GetVInfo(drvNum, volName, &vRefNum, &freeBytes);
   if ( result == noErr )
   {
     // FSID $0000 (HFS Ç‹ÇΩÇÕ HFS Plus) ÇégǡǃçƒÉtÉHÅ[É}ÉbÉg
     result = DIReformat(drvNum, 0x0000, volName, msgText);
   }
   DIUnload();
   return ( result );
 }

éüÇÃÉTÉìÉvÉãÇÕÅADIXZero ÇégǡǃÅAïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégópǵǻǢÉfÉBÉXÉNÇçƒèâä˙âªÇ∑ÇÈï˚ñ@Çé¶ÇµÇƒÇ¢Ç‹Ç∑ÅBDZÇÃÉTÉìÉvÉãÇ≈ÇÕÅAâ¬î\Ç»èÍçáÇ… HFS Plus ÇégǡǃÉ{ÉäÉÖÅ[ÉÄÇèâä˙âªÇ≈Ç´ÇÈÇÊǧDž DIXZero ÇégópǵǃǢNjÇ∑ÅB


 // ïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégópǵǻǢóLå¯Ç»ÉfÉBÉXÉNÇçƒèâä˙âª
 OSErr ReinitializeDisk(short drvNum, Boolean tryHFSPlus)
 {
   OSErr  result;
   Str255  volName;
   short  vRefNum;
   long  freeBytes;
   short  mediaStatus;
   UInt32  actSize;

   DILoad();
   // åªç›ÇÃÉ{ÉäÉÖÅ[ÉÄñºÇéÊìæ
   result = GetVInfo(drvNum, volName, &vRefNum, &freeBytes);
   if ( result == noErr )
   {
     // É{ÉäÉÖÅ[ÉÄÇÉAÉìÉ}ÉEÉìÉg
     result = UnmountVol(NULL, vRefNum);
     if ( result == noErr )
     {
       // ÉfÉBÉXÉNÇÉtÉHÅ[É}ÉbÉg (íçà”: é¿ç€ÇÃÉfÉBÉXÉNÉTÉCÉY)
       result = DIXFormat(drvNum, false, 0, &actSize);
       if ( result == noErr )
       {
         // ÉfÉBÉXÉNÇåüèÿǵÅAǪÇÃåãâ Ç mediaStatus ÇΔǵǃégóp
         mediaStatus = (short)DIVerify(drvNum);

         // HFS Plus ÉtÉHÅ[É}ÉbÉgÇégópÇ∑ÇÈÇ©
         if ( tryHFSPlus )
         {
           // Yes ÇÃèÍçáÇÕ HFS Plus Çégǡǃèâä˙âª
           // (fsid = 0; volTypeSelector = 2)
           // extendedInfoPtr Ç™ NULL Ç≈džÇÈÇΩÇflÅAÉfÉtÉHÉãÉgÇÃÉ{ÉäÉÖÅ[ÉÄì¡ê´Çégóp
          result = DIXZero(drvNum, volName, 0x0000, mediaStatus, 2,
                    actSize, NULL);
         }

         // HFS Plus Ç™ÉäÉNÉGÉXÉgÇ≥ÇÍǻǩǡÇΩÇËÅAÉfÉBÉXÉNÇ™è¨Ç≥Ç∑ǨÇÈÇΩÇflÇ… HFS Plus Ç
         // égÇ¡ÇΩééǛǙé∏îsǵÇΩèÍçá (paramErr)
         if ( !tryHFSPlus || (result == paramErr) )
         {
           // HFS Çégǡǃèâä˙⪠(fsid = 0; volTypeSelector = 1)
           // extendedInfoPtrÇ™NULLÇ≈džÇÈÇΩÇflÅAÉfÉtÉHÉãÉgÇÃÉ{ÉäÉÖÅ[ÉÄì¡ê´Çégóp
           result = DIXZero(drvNum, volName, 0x0000, mediaStatus, 1,
                    actSize, NULL);
         }
       }
     }
   }
   DIUnload();
   return ( result );
 }

éüÇÃÉTÉìÉvÉãÇÕÅADIXZero ÇégǡǃÅAïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégópǵǻǢÉfÉBÉXÉNÇèâä˙âªÇ∑ÇÈï˚ñ@Çé¶ÇµÇƒÇ¢Ç‹Ç∑ÅBDZÇÃÉTÉìÉvÉãÇ≈ÇÕÅAâ¬î\Ç»èÍçáÇ… HFS Plus ÇégǡǃÉ{ÉäÉÖÅ[ÉÄÇèâä˙âªÇ≈Ç´ÇÈÇÊǧDž DIXZero ÇégópǵǃǢNjÇ∑ÅB


 // ïWèÄÉCÉìÉ^ÉtÉFÅ[ÉXÇégópǵǻǢèâä˙âªÇ≥ÇÍǃǢǻǢÉfÉBÉXÉNÇèâä˙âª
 OSErr InitializeDisk(short drvNum, ConstStr255Param volName,
                      Boolean tryHFSPlus)
 {
   OSErr  result;
   short  mediaStatus;
   UInt32  actSize;

   DILoad();
   // ÉfÉBÉXÉNÇÉtÉHÅ[É}ÉbÉg
   result = DIXFormat(drvNum, false, 0, &actSize);
   if ( result == noErr )
   {
     // ÉfÉBÉXÉNÇåüèÿǵÅAǪÇÃåãâ Ç mediaStatus ÇΔǵǃégóp
     mediaStatus = (short)DIVerify(drvNum);

     // HFS Plus ÉtÉHÅ[É}ÉbÉgÇégópÇ∑ÇÈÇ©
     if ( tryHFSPlus )
     {
       // Yes ÇÃèÍçáÇÕ HFS Plus Çégǡǃèâä˙âª
       // (fsid = 0; volTypeSelector = 2)
       // extendedInfoPtr Ç™ NULL Ç≈džÇÈÇΩÇflÅAÉfÉtÉHÉãÉgÇÃÉ{ÉäÉÖÅ[ÉÄì¡ê´Çégóp
       result = DIXZero(drvNum, volName, 0x0000, mediaStatus, 2,
                actSize, NULL);
     }

     // HFS Plus Ç™ÉäÉNÉGÉXÉgÇ≥ÇÍǻǩǡÇΩÇËÅAÉfÉBÉXÉNÇ™è¨Ç≥Ç∑ǨÇÈÇΩÇflÇ… HFS Plus Ç
     // égÇ¡ÇΩééǛǙé∏îsǵÇΩèÍçá (paramErr)
     if ( !tryHFSPlus || (result == paramErr) )
     {
       // HFS Çégǡǃèâä˙⪠(fsid = 0; volTypeSelector = 1)
       // extendedInfoPtr Ç™ NULLÇ≈džÇÈÇΩÇflÅAÉfÉtÉHÉãÉgÇÃÉ{ÉäÉÖÅ[ÉÄì¡ê´Çégóp
       result = DIXZero(drvNum, volName, 0x0000, mediaStatus, 1,
                actSize, NULL);
     }
   }
   DIUnload();
   return ( result );
 }

êÊì™ÉyÅ[ÉWÇ…ñflÇÈ


éQçlï∂å£

êÊì™ÉyÅ[ÉWÇ…ñflÇÈ


É_ÉEÉìÉçÅ[Éh

PDF DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇà Acrobat ÉtÉ@ÉCÉã (147K)

êÊì™ÉyÅ[ÉWÇ…ñflÇÈ


â¸í˘ÇÃóöó

ëSî 

  • DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÃèâî≈ÇÕ 1995 îN 2 åéÅAÅuTechnote 1041 - Inside Macintosh: Files ErrataÅvÇΔǵǃ Jim Luther Ç…ÇÊǡǃèëÇ©ÇÍNjǵÇΩÅB

  • DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÕ 1995 îN 6 åéÅAèâî≈à»ç~Ç…éwìEÇ≥ÇÍÇΩåÎêAÇí˘ê≥ǵǃì‡óeÇÃïsîıÇï‚ǧÇΩÇflÅAJim Luther Ç…ÇÊǡǃçXêVÇ≥ÇÍNjǵÇΩÅB

  • DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÕ 1996 îN 2 åéÅAëOâÒÇÃâ¸í˘à»ç~Ç…éwìEÇ≥ÇÍÇΩåÎêAÇí˘ê≥ǵǃì‡óeÇÃïsîıÇï‚ǧÇΩÇflÅAJim Luther ÇΔ Pete Gontier Ç…ÇÊǡǃçXêVÇ≥ÇÍNjǵÇΩÅB

  • DZÇÃÉeÉNÉjÉJÉãÉmÅ[ÉgÇÕ 1999 îN 2 åéÅAHFS Plus ÇÃí«â¡èÓïÒÇëgÇ›çûÇfiÇΩÇflÅAJim Luther Ç…ÇÊǡǃëSñ ìIÇ»â¸í˘ÇΔçXêVÇ™â¡Ç¶ÇÁÇÍNjǵÇΩÅB

å¬ï ÇÃçÄñ⁄

ëÊ 1 èÕ - File Management ÇÃäTóv

  • FSpExchangeFiles ÇΔ PBExchangeFiles - âΩÇ™åä∑Ç≥ÇÍÇÈÇ©ÅA1995 îN 2 åé
  • GetVInfo Ç…ä÷Ç∑ÇÈí«â¡åüì¢éñçÄÅA1995 îN 2 åé
ëÊ 2 èÕ - File Manager
  • ÉpÉXñºÇÃãKë•Ç™äÆëSÇ…ê‡ñæÇ≥ÇÍǃǢǻǢÅA1995 îN 2 åé
  • ï\ 2-10 Ç…ãLç⁄Ç≥ÇÍǃǢǻǢçsǙdžÇÈÅA1995 îN 2 åé
  • ãNìÆéûÇÃÉfÉtÉHÉãÉgÉfÉBÉåÉNÉgÉäÇÃê‡ñæÇ…ïsîıǙdžÇÈÅA1996 îN 2 åé
  • É}ÉXÉ^Å[ÉfÉBÉåÉNÉgÉäÉuÉçÉbÉNÇà drXTFlSize Ç®ÇÊÇ— drCTFlSize ÉtÉBÅ[ÉãÉhÇÃê‡ñæÇ…ïsîıǙdžÇÈÅA1995 îN 2 åé
  • É}ÉbÉvÉmÅ[ÉhÇÃÉ}ÉbÉvÉåÉRÅ[ÉhÇÕ492ÉoÉCÉg (494ÉoÉCÉgÇ≈ÇÕÇ»Ç≠) ÇêËóLÇ∑ÇÈÅA1995îN2åé
  • vcbAtrb ÇÃÉ{ÉäÉÖÅ[ÉÄÉLÉÉÉbÉVÉÖÉRÉìÉgÉçÅ[ÉãÉrÉbÉgÅA1995 îN 6 åé
  • É{ÉäÉÖÅ[ÉÄÉRÉìÉgÉçÅ[ÉãÉuÉçÉbÉNÇà vcbXTAlBks Ç®ÇÊÇ— vcbCTAlBks ÉtÉBÅ[ÉãÉhÇÃê‡ñæÇ…ïsîıǙdžÇÈÅA1995 îN 6 åé
  • 3.5 ÉCÉìÉ`ÉtÉçÉbÉsÅ[ÉfÉBÉXÉNè„Ç≈ÇÕégópÇ≥ÇÍǻǢ dQDrvSiz ÉtÉBÅ[ÉãÉhÅA1996 îN 2 åé
  • ParamBlockRecÅAHParamBlockRecÅAÇ®ÇÊÇ— CInfoPBRec Çà ioFlAttribÉrÉbÉg ÇÃñæämâªÅA1995 îN 6 åé
  • ioACUser ÇÕÇ¢Ç≠ǬǩÇÃÉCÉìÉ^ÉtÉFÅ[ÉXÉtÉ@ÉCÉãÇÃíÜÇ≈ÇÕ filler2 DžǻǡǃǢÇÈÅA1995 îN 6 åé
  • VolMountInfoHeader ÉfÅ[É^ç\ë¢ëÃÇ…ÇÕÉtÉâÉOÉèÅ[ÉhÇ™ä‹Ç‹ÇÍǃǢÇÈÅA1995 îN 2 åé
  • PBRead Ç®ÇÊÇ— PBWrite ÉäÉNÉGÉXÉgÇ…ÇÊÇÈ ioPosMode ÇÃégÇ¢ï˚ÅA1995 îN 6 åé
  • GetVInfo Ç…ä÷Ç∑ÇÈí«â¡åüì¢éñçÄÅA1995 îN 2 åé
  • PBHGetVInfo Ç…ä÷ǵǃì¡Ç…åüì¢Ç∑Ç◊Ç´ñ‚ëËÅA1995 îN 2 åé
  • FSpGetFInfo ÇÕÉfÉBÉåÉNÉgÉäÇΔÇΔLJDžìÆçÏǵǻǢÅA1995 îN 2 åé
  • FSpSetFInfo ÇÕÉfÉBÉåÉNÉgÉäÇΔÇΔLJDžìÆçÏǵǻǢÅA1995 îN 2 åé
  • HOpenDFÅAPBHOpenDFÅAÇ®ÇÊÇ— paramErr åãâ ÉRÅ[ÉhÅA1995 îN 2 åé
  • ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioFVersNum ÉtÉBÅ[ÉãÉhǙǻǢÅA1995 îN 2 åé
  • ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioMisc ÉtÉBÅ[ÉãÉhǙǻǢÅA1995 îN 2 åé
  • PBGetCatInfo Çà ioFDirIndex ÇÃégópãKë•ÅA1995 îN 2 åé
  • ÉpÉâÉÅÅ[É^ÉuÉçÉbÉNÇ… ioNamePtr ÉtÉBÅ[ÉãÉhǙǻǢÅA1995 îN 2 åé
  • ioForeignPrivIDirID ÇÕ PBGetForeignPrivs ÇΔ PBSetForeignPrivs Ç≈ÇÕ LongInt Ç≈džÇÈÅA1995 îN 2 åé
  • ÉäÉNÉGÉXÉgÇÃé¿çsèáèòÅA1995 îN 2 åé
  • É{ÉäÉÖÅ[ÉÄÉpÉâÉÅÅ[É^ÉoÉäÉAÉìÉgÇÃÉIÉtÉZÉbÉgÇÕ 2 ǬÇ∏Ǭëùâ¡Ç∑ÇÈÅA1995 îN 2 åé
  • É{ÉäÉÖÅ[ÉÄÇ™ MFS (Macintosh File System)ÅAHFS (Hierarchical File System)ÅAÇ‹ÇΩÇÕ HFS Plus Ç≈ÉtÉHÅ[É}ÉbÉgÇ≥ÇÍǃǢÇÈǩǫǧǩÇÃîªíËÅA1999 îN 2 åé
  • PBXGetVolInfoÅA1999 îN 2 åé
  • PBGetXCatInfoÅA1999 îN 2 åé
ëÊ 3 èÕ - ïWèÄÉtÉ@ÉCÉãÉpÉbÉPÅ[ÉW
  • ÉAÉNÉeÉBÉxÅ[ÉVÉáÉìÉvÉçÉVÅ[ÉWÉÉÇ≈ÇÕ TECalText ÇåƒÇ—èoÇ∑ïKóvǙdžÇÈÅA1995 îN 2 åé
  • ÉfÉtÉHÉãÉgÇÃïWèÄÉtÉ@ÉCÉãÉJÉåÉìÉgÉfÉBÉåÉNÉgÉäÅA1995 îN 2 åé
  • ÉäÉXÉg 3-15 Ç≈ÇÕ sfScript ÉtÉBÅ[ÉãÉhÇê›íËǵǃǢǻǢÅA1995 îN 2 åé
ëÊ 4 èÕ - Alias Manager
  • ResolveAlias ÇÕÉ~ÉjÉ}ÉãÉGÉCÉäÉAÉXÇçXêVÇ∑ÇÈÅA1995 îN 2 åé
  • usrCanceledErr ÇÕ userCanceledErr Ç≈Ç»ÇØÇÍnjǻÇÁǻǢÅA1995 îN 2 åé
  • kARMSearchMore ÇΔÅAAliasFilterProc Ç≈égópâ¬î\Ç»ÉÅÉÇÉäÇÃåxçêÅA1995 îN 2 åé
ëÊ 5 èÕ - Disk Initialization Manager
  • ägí£ÉfÉBÉXÉNèâä˙âªÉpÉbÉPÅ[ÉWÅA1995 îN 2 åé
  • ägí£ÉfÉBÉXÉNèâä˙âªÉÜÅ[ÉUÉCÉìÉ^ÉtÉFÅ[ÉXÅA1999 îN 2 åé
  • ägí£ÉçÅ[ÉåÉxÉãÉfÉBÉXÉNèâä˙âªÉãÅ[É`ÉìÅA1999 îN 2 åé
  • DIXFormatÅA1999 îN 2 åé
  • DIXZeroÅA1999 îN 2 åé
  • DIReformatÅA1999 îN 2 åé
  • HFS Ç®ÇÊÇ— HFS Plus É{ÉäÉÖÅ[ÉÄÇÃÉtÉHÅ[É}ÉbÉgÅA1999 îN 2 åé